Add Speedtest GitHub Action for 100k-household run time#74
Open
vahid-ahmadi wants to merge 1 commit into
Open
Conversation
Add a `benches/speedtest.rs` harness=false binary that times `Simulation::run()` over 100k synthetic single-adult households (no FRS data required; scale via SPEEDTEST_HH/SPEEDTEST_RUNS) and prints a parseable `SPEEDTEST_JSON=` line. Add `.github/workflows/speedtest.yml`, which runs the bench on the PR head and the base commit, then posts/updates a sticky PR comment with the median run time, throughput, and the delta vs base. When the bench is absent from the base commit it degrades gracefully to absolute timing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
⏱️ Speedtest — 100,000 households
No baseline available (the speedtest bench is not on the base commit), so only absolute timing is shown. Future PRs will show the delta. 20 timed runs, median reported. Synthetic single-adult household frame — no FRS data required. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #69.
What
Adds a Speedtest GitHub Action that reports how the time to run the engine over 100k households changes in a PR.
How
benches/speedtest.rs— aharness = falsebinary (no Criterion ceremony) that builds 100k synthetic single-adult households spanning the basic/higher/additional rate bands, timesSimulation::run()over several iterations, and prints a single parseable line:Self-contained — no FRS data required (which is absent on CI runners), reusing the synthetic-frame approach from
benches/branch.rs. Scale withSPEEDTEST_HH/SPEEDTEST_RUNS..github/workflows/speedtest.yml— on everypull_request, runs the bench on the PR head and on the base commit, then posts/updates a sticky PR comment with the median run time, throughput, and the delta vs base:When the bench is absent from the base commit (as on the first run, before this merges), it degrades gracefully to reporting absolute PR timing only.
Notes
cargo/cache scaffolding as the existingtest.yml.maindoes not yet have the bench. Once merged, subsequent PRs get the full base-vs-PR delta.🤖 Generated with Claude Code