///
///
export declare module Benchmark {
class Bucket {
upperLimit: number;
count: number;
constructor(up: number, cnt: number);
}
class BasicStats {
max: number;
min: number;
mean: number;
median: number;
count: number;
constructor(values: number[]);
private calcMedian(values);
private fmtNumber(n);
summary(): string;
}
class Histogram {
private buckets_;
private count_;
constructor(nbuckets: number, max: number);
addValue(num: number): void;
addValues(nums: number[]): Histogram;
getValues(): Bucket[];
getPoints(): number[][];
}
enum Result {
RES_SUCCESS = 0,
RES_FAILURE = 1,
RES_TIMEOUT = 2,
}
class DataVector {
values: Array[];
constructor();
addValue(latency: number, result: Result): void;
addValues(latencies: number[], result: Result): void;
}
class TestResult {
requestSize: number;
raw: DataVector;
histogram: Histogram[];
constructor(size: number, successes: number[], failures: number[], timeouts: number[], nbuckets: number, max: number);
}
class RequestManager {
private concurrency;
private histoNumBuckets;
private histoMax;
private kTimeoutMS;
private kMaxTimeouts;
private kWatchdogInterval;
private latencies_;
private sizes_;
private request_queue_;
private running_requests_;
private finished_concurrent_requests_;
private result_callback_;
private timeout_count_;
private request_counter_;
private verbosity_;
constructor(sizes: number[]);
configureDefaults(conc: number, nbuckets: number, max: number, verbosity: number, max_timeouts: number): void;
private finishRequest(requestIndex, err, response, body);
startRequest(requestIndex: number, sizeIndex: number): void;
runATest(requestIndex: number): void;
private watchDog();
private initForTestRun();
runTests(numPerSize: number, callback: Function): void;
}
interface BenchmarkStrategy {
configure(requestManager: RequestManager): void;
run(): void;
}
}