58 lines
1.5 KiB
TypeScript
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);
|
|
});
|
|
|