@kiwa-lab/perf-harness
v2.0.0
Published
Generic performance harness v0.3 strict — p50/p95/p99 measurement + regression detection + baseline persistence + 3-layer harness (serial + concurrent + memory) + strict mode (iter 400 + Welch |t|>3 + p95 delta 10%) + 38 package coverage + 14-axis release
Maintainers
Readme
@kiwa-lab/perf-harness
Generic performance harness for kiwa packages and dogfood apps. It measures p50/p95/p99 latency, persists baselines, detects regressions, and feeds perf data into @kiwa-lab/quality-metrics.
Single measure
import { measure } from '@kiwa-lab/perf-harness';
const result = await measure({
name: 'reply',
iterations: 100,
warmup: 5,
fn: async () => {
await adapter.reply({ userMessage: 'Say hi.' });
},
});Baseline compare
import {
defaultBaselinePath,
detectRegression,
loadBaseline,
measure,
saveBaseline,
} from '@kiwa-lab/perf-harness';
const path = defaultBaselinePath('dogfood-anthropic-chatbot');
const current = await measure({ name: 'reply', iterations: 100, warmup: 5, fn });
const baseline = await loadBaseline(path);
if (baseline) {
const regression = detectRegression({ current, baseline, threshold: 0.2 });
console.log(regression.verdict);
}
await saveBaseline(path, current);Release-gate integration
import { evaluatePerfGate, measure } from '@kiwa-lab/perf-harness';
const result = await measure({ name: 'evaluateReleaseGate', iterations: 100, warmup: 5, fn });
const gate = evaluatePerfGate({
result,
thresholds: { p95Ms: 100 },
});
console.log(gate.verdict.passed, gate.breaches);