aboutsummaryrefslogtreecommitdiff
path: root/benches/thread_local.rs
blob: dd4716d87c89736859d6fb489a07a1a94736bb5d (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
use criterion::{black_box, BatchSize};

use thread_local::ThreadLocal;

fn main() {
    let mut c = criterion::Criterion::default().configure_from_args();

    c.bench_function("get", |b| {
        let local = ThreadLocal::new();
        local.get_or(|| Box::new(0));
        b.iter(|| {
            black_box(local.get());
        });
    });

    c.bench_function("insert", |b| {
        b.iter_batched_ref(
            ThreadLocal::new,
            |local| {
                black_box(local.get_or(|| 0));
            },
            BatchSize::SmallInput,
        )
    });
}