#![feature(test)] extern crate test; use crossbeam_epoch as epoch; use crossbeam_utils::thread::scope; use test::Bencher; #[bench] fn single_pin(b: &mut Bencher) { b.iter(epoch::pin); } #[bench] fn multi_pin(b: &mut Bencher) { const THREADS: usize = 16; const STEPS: usize = 100_000; b.iter(|| { scope(|s| { for _ in 0..THREADS { s.spawn(|_| { for _ in 0..STEPS { epoch::pin(); } }); } }) .unwrap(); }); }