UNPKG

reliable-zeromq

Version:

A collection of reliable zeromq messaging constructs

121 lines (107 loc) 2.93 kB
import { PerfTest } from "simple-perf"; import { CancellableDelay, Delay } from "../../Src/Utils/Delay"; function SynchronousDelay(): Promise<void> { return Delay(0); } async function SynchronousDelay1_000(): Promise<void> { const lPromise: Promise<void>[] = []; for (let i: number = 0; i < 1_000; ++i) { lPromise.push(Delay(0)); } await Promise.all(lPromise); } async function SynchronousDelay25_000(): Promise<void> { const lPromise: Promise<void>[] = []; for (let i: number = 0; i < 25_000; ++i) { lPromise.push(Delay(0)); } await Promise.all(lPromise); } function SynchronousCancellableDelay(): Promise<void> { return new CancellableDelay().Create(0); } async function SynchronousCancellableDelay1_000(): Promise<void> { const lCancellableDelay: CancellableDelay = new CancellableDelay(); const lPromise: Promise<void>[] = []; for (let i: number = 0; i < 1_000; ++i) { lPromise.push(lCancellableDelay.Create(0)); } await Promise.all(lPromise); } async function SynchronousCancellableDelay25_000(): Promise<void> { const lCancellableDelay: CancellableDelay = new CancellableDelay(); const lPromise: Promise<void>[] = []; for (let i: number = 0; i < 25_000; ++i) { lPromise.push(lCancellableDelay.Create(0)); } await Promise.all(lPromise); } const lBenchmarks: PerfTest[] = [ new PerfTest( { Name: "Delay > Synchronous [ 1 ]", Function: SynchronousDelay, FunctionReturnsPromise: true, Console: true, }, ), new PerfTest( { Name: "Delay > Synchronous [ 1000 ]", Function: SynchronousDelay1_000, FunctionReturnsPromise: true, Console: true, }, ), new PerfTest( { Name: "Delay > Synchronous [ 25000 ]", Function: SynchronousDelay25_000, FunctionReturnsPromise: true, Console: true, }, ), new PerfTest( { Name: "CancellableDelay > Synchronous [ 1 ]", Function: SynchronousCancellableDelay, FunctionReturnsPromise: true, Console: true, }, ), new PerfTest( { Name: "CancellableDelay > Synchronous [ 1000 ]", Function: SynchronousCancellableDelay1_000, FunctionReturnsPromise: true, Console: true, }, ), new PerfTest( { Name: "CancellableDelay > Synchronous [ 25000 ]", Function: SynchronousCancellableDelay25_000, FunctionReturnsPromise: true, Console: true, }, ), ]; async function RunTests(aBenchmarks: PerfTest[]): Promise<void> { for (let i: number = 0; i < aBenchmarks.length; ++i) { await aBenchmarks[i].Run(); } } RunTests(lBenchmarks);