A single-page TypeScript application for visualizing benchmark results.
- Install dependencies:
npm install - Start development server:
npm run dev - Build for production:
npm run build
The app is automatically built and deployed to GitHub Pages on pushes to the master branch via GitHub Actions.
Benchmark results are embedded in the app as JSON data. Update the data in src/main.ts or import from JSON files in the results/ directory.
Completed runs are appended with the validated, idempotent publisher:
npm run append-results -- /path/to/run.jsonThe input must contain exactly one completed suite run with runner and source metadata. Replaying
the identical runner, suite, and timestamp is a no-op; conflicting data for that identity is
rejected. The command atomically updates results/results.json while preserving its append-only
layout.
To identify benchmark-level regression candidates for the latest Amp orb run:
npm run analyze-regressions -- results/results.json --runner amp-orb-a1.xxlargeThe analyzer compares duration medians with the immediately preceding run from the same runner and
suite. It reports a candidate when any comparable duration series is at least 20% slower. A series
identifies one benchmark, run configuration, and language/invocation-path measurement. Candidates
require investigation; the command does not classify causes or send alerts. Pass
--timestamp <UTC timestamp> to analyze a specific published run instead of the latest one.