blob: d5c8090e1b00187dff842cb372f6b0f002fb66a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#[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);
|