Benchmark prs#1529
Draft
jprendes wants to merge 2 commits into
Draft
Conversation
Introduce a new internal tooling crate (hyperlight-ci) that provides:
- bench subcommand: Discovers, builds, and runs criterion benchmarks
in parallel using direct binary invocation. Features include:
- Automatic P-core detection and CPU pinning for isolation
- Configurable parallelism (-j N, defaults to all P-cores)
- Progress spinners that appear only for active benchmarks
- Support for pre-built binaries (--binary) to skip rebuilds
- Filter benchmarks by substring or exact match
- bench-report subcommand: Generates markdown comparison tables from
criterion's target/criterion/ JSON output. Features include:
- Baseline comparison using change/estimates.json (new vs previous)
- Tiered emoji indicators matching criterion-table conventions
(rocket for 1.8x+ faster, checkmark for ok, cross for regression)
- Optional allowlist filtering via --binary or text filter
- Output to stdout or file (-o path)
This replaces ad-hoc benchmark scripting with a unified tool suitable
for both local development and CI report generation.
Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
8ad9393 to
0e181c4
Compare
- Add cargo alias (`cargo ci`) for convenient hyperlight-ci invocation - Update dep_benchmarks workflow to use `cargo ci bench` and generate a markdown report via `cargo ci bench-report`, posting results as a PR comment per hypervisor/cpu matrix entry - Add benchmarks job to ValidatePullRequest workflow with hypervisor and cpu matrix, gated behind docs-only and build-guests checks - Grant pull-requests: write permission for PR comment posting - Simplify Justfile bench recipes to delegate to `cargo ci bench` - Update benchmarking docs to reflect the new workflow Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
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.
No description provided.