iso-bench
Version:
Small benchmark library focused in avoiding optimization/deoptimization pollution between tests by isolating them.
33 lines (32 loc) • 1.38 kB
TypeScript
import * as Stream from "stream";
import { Test, TestOptions } from "./Test";
import { Processor } from "./Processor";
export type AsyncCallback = (resolve: () => void, reject: (error: unknown) => void) => void;
export type AsyncSetupCallback<T> = (resolve: () => void, reject: (error: unknown) => void, setup: T) => void;
export type IsoBenchOptions = {
parallel?: number;
} & TestOptions;
export declare class IsoBench {
#private;
readonly name: string;
processors: Processor[];
tests: Test[];
currentTests: Test[];
options: Required<IsoBenchOptions>;
running: boolean;
done: boolean;
private _waiting;
constructor(name?: string, options?: IsoBenchOptions);
static IfMaster(cb: () => void): void;
addAsync(name: string, callback: AsyncCallback, options?: TestOptions): this;
addAsync<T>(name: string, callback: AsyncSetupCallback<T>, setup: () => T, options?: TestOptions): this;
add(name: string, callback: () => void, options?: TestOptions): this;
add<T>(name: string, callback: (setup: T) => void, setup: () => T, options?: TestOptions): this;
addProcessor(processorCallback: () => Processor): this;
consoleLog(): this;
streamLog(streamCallback: () => Stream.Writable): this;
endGroup(name: string): this;
run(): Promise<void>;
protected wait(): Promise<void>;
private _start;
}