2019-02-19 12:15:01 -08:00
|
|
|
#![feature(test)]
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate tokio_trace;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate log;
|
|
|
|
|
extern crate test;
|
|
|
|
|
use test::Bencher;
|
2019-04-02 19:29:23 +01:00
|
|
|
use tokio_trace::Level;
|
2019-02-19 12:15:01 -08:00
|
|
|
|
|
|
|
|
#[bench]
|
|
|
|
|
fn bench_span_no_subscriber(b: &mut Bencher) {
|
|
|
|
|
b.iter(|| {
|
2019-04-02 19:29:23 +01:00
|
|
|
span!(Level::TRACE, "span");
|
2019-02-19 12:15:01 -08:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[bench]
|
|
|
|
|
fn bench_log_no_logger(b: &mut Bencher) {
|
|
|
|
|
b.iter(|| {
|
|
|
|
|
log!(log::Level::Info, "log");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[bench]
|
|
|
|
|
fn bench_costly_field_no_subscriber(b: &mut Bencher) {
|
|
|
|
|
b.iter(|| {
|
|
|
|
|
span!(
|
2019-04-02 19:29:23 +01:00
|
|
|
Level::TRACE,
|
2019-02-19 12:15:01 -08:00
|
|
|
"span",
|
|
|
|
|
foo = tokio_trace::field::display(format!("bar {:?}", 2))
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[bench]
|
|
|
|
|
fn bench_no_span_no_subscriber(b: &mut Bencher) {
|
|
|
|
|
b.iter(|| {});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[bench]
|
|
|
|
|
fn bench_1_atomic_load(b: &mut Bencher) {
|
|
|
|
|
// This is just included as a baseline.
|
|
|
|
|
use std::sync::atomic::{AtomicUsize, Ordering};
|
|
|
|
|
let foo = AtomicUsize::new(1);
|
|
|
|
|
b.iter(|| foo.load(Ordering::Relaxed));
|
|
|
|
|
}
|