@thi.ng/bench
Version:
Benchmarking & profiling utilities w/ various statistics & formatters (CSV, JSON, Markdown etc.)
23 lines (22 loc) • 756 B
JavaScript
import { EMPTY, FLOAT } from "../api.js";
const FORMAT_DEFAULT = {
prefix: EMPTY,
start: ({ title }) => `benchmarking: ${title}`,
warmup: (t, { warmup }) => ` warmup... ${FLOAT(t)}ms (${warmup} runs)`,
result: ({ iter, size, total, freq, mean, median, min, max, q1, q3, sd }) => (
// prettier-ignore
` total: ${FLOAT(total)}ms, runs: ${iter} (@ ${size} calls/iter)
freq: ${FLOAT(freq)} ops/sec
mean: ${FLOAT(mean)}ms, median: ${FLOAT(median)}ms, range: [${FLOAT(min)}..${FLOAT(max)}]
q1: ${FLOAT(q1)}ms, q3: ${FLOAT(q3)}ms
sd: ${FLOAT(sd)}%`
),
total: (res) => {
const fastest = res.slice().sort((a, b) => a.mean - b.mean)[0];
return `Fastest: "${fastest.title}"`;
},
suffix: () => `---`
};
export {
FORMAT_DEFAULT
};