use criterion::{black_box, criterion_group, criterion_main, Criterion}; use tracing::{span, Level}; mod shared; fn bench(c: &mut Criterion) { shared::for_all_recording(&mut c.benchmark_group("span_repeated"), |b| { let n = black_box(N_SPANS); b.iter(|| (0..n).fold(mk_span(0), |_, i| mk_span(i as u64))) }); } #[inline] fn mk_span(i: u64) -> tracing::Span { span!(Level::TRACE, "span", i = i) } const N_SPANS: usize = 100; criterion_group!(benches, bench); criterion_main!(benches);