Skip to main content

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};