diff options
Diffstat (limited to 'vendor/thread_local/benches/thread_local.rs')
-rw-r--r-- | vendor/thread_local/benches/thread_local.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/thread_local/benches/thread_local.rs b/vendor/thread_local/benches/thread_local.rs new file mode 100644 index 000000000..ccad6655e --- /dev/null +++ b/vendor/thread_local/benches/thread_local.rs @@ -0,0 +1,28 @@ +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, + ) + }); +} |