Repository navigation
ci(verify): perf budget for export, seek and playback - #2660
Merged
Merged
Conversation
A new Perf budget workflow builds the engine suite's export, seek and playback binaries for a pull request and for its merge base on the same Blacksmith macOS 26 machine, then runs four workloads in interleaved pairs. It fails when the median test-process CPU time (rusage user + system) is more than 5% above the base's in every pair. Wall time is reported and warns at 8%. It runs for ready pull requests that change an engine crate or a high-risk region, like the Engine verify FULL tier. Every other pull request gets a green "Perf budget" verdict without a macOS job. Calibrated locally with the same binaries on both sides: every workload within 0.6% CPU and 0.4% wall.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… target/Frameworks
… playback report-only
…un's outcomes, kebab-case scripts
Member
Author
|
Addressed in 1a18450:
|
Member
Author
|
@greptileai review |
…where Blacksmith noise reaches 5%
…e +10.8% on identical code
Member
Author
|
@greptileai review |
Member
Author
|
@greptileai review |
This branch was successfully deployed
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.
Adds a Perf budget check: a pull request that makes export, seek or playback measurably slower than its base now fails.
How it measures
flowchart LR A[PR head] --> C[perf_build.py: engine suite binaries] B[merge base] --> D[perf_build.py: same, same machine] C --> E[perf_ab.py: interleaved pairs] D --> E E --> F{median per-pair CPU ratio more than 25% above base, slower in every pair?} F -->|yes| G[fail] F -->|no| H[pass]blacksmith-6vcpu-macos-26) and share one target cache (target/perf-verify/, release without LTO).wait4rusage). These VMs have no hardware instruction counters, and CPU time ignores scheduling noise better than wall time. Wall time is reported and warns at 8%.export/basic/*export/jitter-camera-40s/*seek/*/storm30/*playback/basic/*When it runs
plan.py riskscope as the Engine verify FULL tier. A change to the perf budget's own files also runs it.Perf budgetverdict from a 2-vCPU Ubuntu job, with no macOS job.workflow_dispatchaccepts any base ref.Calibration
Head and base with identical engine code (this pull request changes only CI files), 3 pairs each:
Perf budgetbecomes a required check once a few runs have stayed green.

Confidence Score: 5/5
The PR appears safe to merge, with no new blocking issues found.Summary
Adds a performance check that builds and times head and base on one macOS runner.
Reviews (4) · Last reviewed commit: "ci(verify): perf budget compares runs wh..." · Reviewed by Greptile