UNPKG

@thi.ng/bench

Version:

Benchmarking & profiling utilities w/ various statistics & formatters (CSV, JSON, Markdown etc.)

23 lines (22 loc) 756 B
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 };