Skip to content

feat: performance report pipeline (versioned benchmark snapshots)#90

Merged
alvinreal merged 1 commit intomainfrom
fix/issue-84
Feb 23, 2026
Merged

feat: performance report pipeline (versioned benchmark snapshots)#90
alvinreal merged 1 commit intomainfrom
fix/issue-84

Conversation

@alvinreal
Copy link
Copy Markdown
Owner

Summary

Automate benchmark snapshots and keep a historical report for release notes.

Changes

  • CI workflow (.github/workflows/bench.yml): Enhanced to run on both push-to-main and PRs. Now generates structured JSON snapshots containing version, commit, date, Rust toolchain, and per-benchmark timings. Posts a human-readable Markdown report to the GitHub Actions step summary. Uploads artifacts with 90-day retention. Adds a PR comparison step for regression review.

  • Local script (scripts/bench-report.sh): Developers can generate the same snapshots locally, producing JSON + text reports and a bench-latest.* copy for quick access.

  • Documentation (bench-results/README.md): Describes the snapshot format, CI integration, and how to use snapshots for release notes.

Snapshot format

{
  "version": "0.1.0",
  "date": "2026-02-23",
  "timestamp": "2026-02-23T22:38:00Z",
  "commit": "abc1234...",
  "rust_version": "rustc 1.82.0 ...",
  "benchmarks": [
    {"name": "parse_json/records/1000", "ns_per_iter": 123456, "deviation": 789}
  ]
}

Tracked benchmarks

Parsing, serialization, format conversion, mapping operations, and end-to-end pipeline — each at 100 / 1,000 / 10,000 records.

Fixes #84

…pipeline

- Enhance CI bench workflow to run on push to main and PRs, generating
  structured JSON snapshots with version, commit, date, toolchain, and
  per-benchmark timings (ns/iter + deviation)
- Post human-readable Markdown benchmark report to GitHub Actions step
  summary for quick visibility
- Add PR comparison step that surfaces current benchmark data for
  regression review
- Upload benchmark artifacts (JSON snapshots, Criterion HTML reports,
  raw bencher output) with 90-day retention
- Add local scripts/bench-report.sh for developers to generate the same
  snapshots locally with bench-latest.json symlink
- Add bench-results/ directory with README documenting snapshot format,
  CI integration, and usage for release notes
- gitignore local snapshot files, track only README

Fixes #84
@alvinreal alvinreal merged commit f21fd09 into main Feb 23, 2026
14 checks passed
@alvinreal alvinreal deleted the fix/issue-84 branch February 23, 2026 23:39
@github-actions github-actions bot mentioned this pull request Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Performance Report Pipeline (versioned benchmark snapshots)

1 participant