]> git.proxmox.com Git - rustc.git/blob - vendor/tracing-subscriber-0.3.3/benches/enter.rs
New upstream version 1.66.0+dfsg1
[rustc.git] / vendor / tracing-subscriber-0.3.3 / benches / enter.rs
1 use criterion::{criterion_group, criterion_main, Criterion};
2 use tracing_subscriber::prelude::*;
3
4 fn enter(c: &mut Criterion) {
5 let mut group = c.benchmark_group("enter");
6 let _subscriber = tracing_subscriber::fmt()
7 .with_max_level(tracing::Level::INFO)
8 .finish()
9 .set_default();
10 group.bench_function("enabled", |b| {
11 let span = tracing::info_span!("foo");
12 b.iter_with_large_drop(|| span.enter())
13 });
14 group.bench_function("disabled", |b| {
15 let span = tracing::debug_span!("foo");
16 b.iter_with_large_drop(|| span.enter())
17 });
18 }
19
20 fn enter_exit(c: &mut Criterion) {
21 let mut group = c.benchmark_group("enter_exit");
22 let _subscriber = tracing_subscriber::fmt()
23 .with_max_level(tracing::Level::INFO)
24 .finish()
25 .set_default();
26 group.bench_function("enabled", |b| {
27 let span = tracing::info_span!("foo");
28 b.iter(|| span.enter())
29 });
30 group.bench_function("disabled", |b| {
31 let span = tracing::debug_span!("foo");
32 b.iter(|| span.enter())
33 });
34 }
35
36 fn enter_many(c: &mut Criterion) {
37 let mut group = c.benchmark_group("enter_many");
38 let _subscriber = tracing_subscriber::fmt()
39 .with_max_level(tracing::Level::INFO)
40 .finish()
41 .set_default();
42 group.bench_function("enabled", |b| {
43 let span1 = tracing::info_span!("span1");
44 let _e1 = span1.enter();
45 let span2 = tracing::info_span!("span2");
46 let _e2 = span2.enter();
47 let span3 = tracing::info_span!("span3");
48 let _e3 = span3.enter();
49 let span = tracing::info_span!("foo");
50 b.iter_with_large_drop(|| span.enter())
51 });
52 group.bench_function("disabled", |b| {
53 let span1 = tracing::info_span!("span1");
54 let _e1 = span1.enter();
55 let span2 = tracing::info_span!("span2");
56 let _e2 = span2.enter();
57 let span3 = tracing::info_span!("span3");
58 let _e3 = span3.enter();
59 let span = tracing::debug_span!("foo");
60 b.iter_with_large_drop(|| span.enter())
61 });
62 }
63 criterion_group!(benches, enter, enter_exit, enter_many);
64 criterion_main!(benches);