extern crate criterion; extern crate thread_local; 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, ) }); }