Repository navigation
M2: performance budgets that hold on CI machines - #14
Merged
Merged
Conversation
GitHub's Linux runners took 101 ms for M2's 100 ms case (55 ms on a developer's machine) and failed it at random, on PRs that did not touch the engine. Where `CI` is set, each budget is doubled: a real slowdown of twice or more still fails there. `cargo xtask ci` now prints the timings even when they pass, so a budget nearly reached shows in every log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Erry91
force-pushed
the
fix/ci-timing-budget
branch
from
October 25, 2026 20:01
3e95903 to
1fd0051
Compare
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.
What this changes
M2's performance test requires 100 luminaires × 10,000 points in under 100 ms. That takes about 55 ms on a developer's machine, but 53 to 101 ms on GitHub's Linux runners, varying from run to run, so the test failed at random on PRs that did not touch the engine: #13 failed twice at 101.0 and 101.5 ms, then passed.
CIenvironment variable is set (GitHub Actions sets it), each budget is doubled (CI_FACTOR = 2). The test stays meaningful there, because a real slowdown of twice or more still fails. The budgets on a developer's machine are unchanged: 100 ms and 500 ms.cargo xtask ciruns the performance tests with--nocapture, so the timings are printed even when they pass. A budget that is nearly reached now shows in every log, instead of only when it fails.How you verified it
cargo xtask ci(timings printed: 55 ms and 101 ms here)CI=trueand the case's budget cut to 20 ms, the test fails with "54.8 ms is over the 40ms budget": it still fails under CI, at twice the budgetLife safety (AGENTS.md §2)
Never panic (AGENTS.md §3)
Provenance (AGENTS.md §1)
Records
ROADMAP.mdprogress log. No parity entry changes🤖 Generated with Claude Code