Files
tokio/tokio-trace/benches/no_subscriber.rs
T
James Gilles aa99950b9c trace: Switch benchmarks to criterion (#1163)
Extracted from #1152

This makes it possible to run benchmarks on stable + gives more statistical reliability.
2019-06-24 12:05:45 -07:00

43 lines
1.1 KiB
Rust

#[macro_use]
extern crate tokio_trace;
#[macro_use]
extern crate log;
#[macro_use]
extern crate criterion;
use criterion::Criterion;
use tokio_trace::Level;
fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("span_no_subscriber", |b| {
b.iter(|| {
span!(Level::TRACE, "span");
})
});
c.bench_function("bench_log_no_logger", |b| {
b.iter(|| {
log!(log::Level::Info, "log");
});
});
c.bench_function("bench_costly_field_no_subscriber", |b| {
b.iter(|| {
span!(
Level::TRACE,
"span",
foo = tokio_trace::field::display(format!("bar {:?}", 2))
);
});
});
// This is just included as a baseline.
c.bench_function("bench_no_span_no_subscriber", |b| {
b.iter(|| {});
});
c.bench_function("bench_1_atomic_load", |b| {
use std::sync::atomic::{AtomicUsize, Ordering};
let foo = AtomicUsize::new(1);
b.iter(|| foo.load(Ordering::Relaxed));
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);