build(deps): add gungraun (was iai-callgrind) instruction-count benches
Wire `gungraun` 0.18 as a dev-dependency and a `benches/` directory with instruction-count benchmarks for the algorithmic hot paths. Why gungraun and not criterion: heuropt's hot paths are deterministic numerical loops where wall-clock noise dominates real differences. gungraun runs each benchmark under valgrind/callgrind once and reports exact instruction counts — stable across machines and CI runners, detects sub-microsecond regressions cleanly. Benchmarks added: - pareto::non_dominated_sort (the inner loop of every Pareto MOEA) - pareto::crowding_distance (NSGA-II survival selection) - metrics::hypervolume_nd (HSO recursion, used by SMS-EMOA) - internal::cholesky (BO's per-step posterior factorization) - algorithms::nsga2 single generation (end-to-end smoke check) - algorithms::cma_es single generation (eigendecomposition cost) Tracked size only — these aren't part of the regular CI matrix because they need valgrind installed. Run with `cargo bench` locally. Wired via the standard `[[bench]]` Cargo entries with `harness = false` so gungraun's main_macro does the dispatch.
This commit is contained in:
@@ -23,3 +23,10 @@ rand = "0.9"
|
||||
rand_distr = "0.5"
|
||||
rayon = { version = "1", optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
gungraun = "0.18"
|
||||
|
||||
[[bench]]
|
||||
name = "hot_paths"
|
||||
harness = false
|
||||
|
||||
Reference in New Issue
Block a user