1
0

lock.rs 979 B

123456789101112131415161718192021222324252627282930313233
  1. #![allow(unused)]
  2. use generational_box::*;
  3. use criterion::{black_box, criterion_group, criterion_main, Criterion};
  4. fn create<S: Storage<u32>>(owner: &Owner<S>) -> GenerationalBox<u32, S> {
  5. owner.insert(0)
  6. }
  7. fn set_read<S: Storage<u32>>(signal: GenerationalBox<u32, S>) -> u32 {
  8. signal.set(1);
  9. *signal.read()
  10. }
  11. fn bench_fib(c: &mut Criterion) {
  12. {
  13. let owner = UnsyncStorage::owner();
  14. c.bench_function("create_unsync", |b| b.iter(|| create(black_box(&owner))));
  15. let signal = create(&owner);
  16. c.bench_function("set_read_unsync", |b| {
  17. b.iter(|| set_read(black_box(signal)))
  18. });
  19. }
  20. {
  21. let owner = SyncStorage::owner();
  22. c.bench_function("create_sync", |b| b.iter(|| create(black_box(&owner))));
  23. let signal = create(&owner);
  24. c.bench_function("set_read_sync", |b| b.iter(|| set_read(black_box(signal))));
  25. }
  26. }
  27. criterion_group!(benches, bench_fib);
  28. criterion_main!(benches);