p3_miden_dev_utils/bench.rs
1//! Benchmark-specific utilities (Criterion config, parallel detection).
2
3extern crate std;
4
5use std::time::Duration;
6
7use criterion::Criterion;
8
9// =============================================================================
10// Criterion configuration
11// =============================================================================
12
13/// Standard Criterion configuration for p3-miden benchmarks.
14///
15/// Settings: sample_size=10, measurement_time=12s, warm_up_time=3s
16pub fn criterion_config() -> Criterion {
17 Criterion::default()
18 .sample_size(10)
19 .measurement_time(Duration::from_secs(12))
20 .warm_up_time(Duration::from_secs(3))
21}
22
23/// Configuration for longer-running benchmarks (e.g., PCS).
24///
25/// Settings: sample_size=10, measurement_time=30s, warm_up_time=3s
26pub fn criterion_config_long() -> Criterion {
27 Criterion::default()
28 .sample_size(10)
29 .measurement_time(Duration::from_secs(30))
30 .warm_up_time(Duration::from_secs(3))
31}
32
33// =============================================================================
34// Parallelism detection
35// =============================================================================
36
37/// Parallelism mode string for benchmark grouping.
38pub const PARALLEL_STR: &str = if cfg!(feature = "parallel") {
39 "parallel"
40} else {
41 "single"
42};