nope/modules/mod-Publish-And-Subscribe-System/test/Performance-Test.ts
2020-09-01 17:05:06 +02:00

58 lines
1.5 KiB
TypeScript

/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2018-05-22 01:13:13
* @modify date 2020-09-01 17:04:39
* @desc [description]
*/
import { hostname } from 'os';
import 'reflect-metadata';
import { generateBenchmarkFunction } from '../../funcs/generateBenchmarkFunction';
import { Builder } from '../../mod-Assembly-Builder/src/Container-Builder.FileLoader';
import { SystemLogger } from '../../mod-Logger/src/Unique.Logger';
import * as PUBSUB from '../assembly/manual-assembly';
import { addObservables } from '../src/Pub-Sub-Observable';
/** Clear the Screen */
declare const process: any;
/** Add the Observer-ActivationHandler */
Builder.instance.addElements(PUBSUB.EXPORT)
Builder.instance.addActivationHandler(addObservables);
Builder.load();
Builder.on('loaded', () => {
SystemLogger.logger.level = 'info'
/** Create the Benchmark Module */
const _max = 10000000;
/** Create A PubSubSystem */
const _pubSub = Builder.instance.container.get<PUBSUB.PubSubSystem>(PUBSUB.TYPES.PubSubSystem);
_pubSub.rootName = hostname();
const _benchmark = generateBenchmarkFunction(_max, '')
_pubSub.createSubscription('test', _benchmark);
let counter = _max * 4;
const _pub = _pubSub.createPublisher('test');
while (counter >= 0) {
_pub.publishData(counter--);
}
counter = _max * 4;
while (counter >= 0) {
_pub.publishData(counter--);
}
setTimeout(() => {
}, 10);
});