Sha256: c330b704d96b2ad1aed29f72c37a99da534adef8cb06a3976d5f93bf567abb20
Contents?: true
Size: 1.5 KB
Versions: 37
Compression:
Stored size: 1.5 KB
Contents
#![feature(test)] extern crate test; use crossbeam_epoch::{self as epoch, Owned}; use crossbeam_utils::thread::scope; use test::Bencher; #[bench] fn single_alloc_defer_free(b: &mut Bencher) { b.iter(|| { let guard = &epoch::pin(); let p = Owned::new(1).into_shared(guard); unsafe { guard.defer_destroy(p); } }); } #[bench] fn single_defer(b: &mut Bencher) { b.iter(|| { let guard = &epoch::pin(); guard.defer(move || ()); }); } #[bench] fn multi_alloc_defer_free(b: &mut Bencher) { const THREADS: usize = 16; const STEPS: usize = 10_000; b.iter(|| { scope(|s| { for _ in 0..THREADS { s.spawn(|_| { for _ in 0..STEPS { let guard = &epoch::pin(); let p = Owned::new(1).into_shared(guard); unsafe { guard.defer_destroy(p); } } }); } }) .unwrap(); }); } #[bench] fn multi_defer(b: &mut Bencher) { const THREADS: usize = 16; const STEPS: usize = 10_000; b.iter(|| { scope(|s| { for _ in 0..THREADS { s.spawn(|_| { for _ in 0..STEPS { let guard = &epoch::pin(); guard.defer(move || ()); } }); } }) .unwrap(); }); }
Version data entries
37 entries across 37 versions & 1 rubygems