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