test(bench): profile the full compare workload with gungraun
Adds benches/compare_profile.rs: a gungraun library_benchmark that runs the entire `compare` workload once at seed 0 under callgrind. It path- includes the shared examples/_shared/compare_workload.rs module and calls the new profile_workload() entry point, which invokes all 82 algorithm runners and folds every result into a checksum so nothing is elided. gungraun reports the whole-program instruction count and diffs it against the previous run; the saved callgrind.out (target/gungraun/heuropt/compare_profile/.../callgrind.full_compare_workload.out) carries the per-function breakdown for callgrind_annotate. This is the measurement harness for the function-level optimization campaign. Round-0 baseline: 357,060,633,544 Ir. The shared module also carries the example's presentation layer, so the bench gets a commented `#![allow(dead_code)]` -- but the runner functions are deliberately not allow-listed, so a runner missing from profile_workload still warns (that check already caught one omission). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,10 @@ tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }
|
||||
name = "hot_paths"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "compare_profile"
|
||||
harness = false
|
||||
|
||||
[[example]]
|
||||
name = "async_eval"
|
||||
required-features = ["async"]
|
||||
|
||||
Reference in New Issue
Block a user