UNPKG

@dapplion/benchmark

Version:

Ensures that new code does not introduce performance regressions with CI. Tracks:

41 lines (40 loc) 1.3 kB
export function computeBenchComparision(currBench, prevBench, threshold) { const prevResults = new Map(); if (prevBench) { for (const bench of prevBench.results) { prevResults.set(bench.id, bench); } } const results = currBench.results.map((currBench) => { const { id } = currBench; const prevBench = prevResults.get(id); const thresholdBench = currBench.threshold ?? threshold; if (prevBench) { const ratio = currBench.averageNs / prevBench.averageNs; return { id, currAverageNs: currBench.averageNs, prevAverageNs: prevBench.averageNs, ratio, isFailed: ratio > thresholdBench, isImproved: ratio < 1 / thresholdBench, }; } else { return { id, currAverageNs: currBench.averageNs, prevAverageNs: null, ratio: null, isFailed: false, isImproved: false, }; } }); return { currCommitSha: currBench.commitSha, prevCommitSha: prevBench?.commitSha ?? null, someFailed: results.some((r) => r.isFailed), results, }; }