Skip to content

Commit d900851

Browse files
authored
Rollup merge of rust-lang#81682 - JulianKnodt:bit_set_iter_benchmarks, r=oli-obk
Add additional bitset benchmarks Add additional benchmarks for operations in bitset, I realize that it was a bit lacking when I intended to optimize it earlier, so I was hoping to put some in so I can verify my work later.
2 parents c96a4db + 6e6608d commit d900851

File tree

1 file changed

+34
-0
lines changed
  • compiler/rustc_index/src/bit_set

1 file changed

+34
-0
lines changed

compiler/rustc_index/src/bit_set/tests.rs

+34
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use super::*;
22

33
extern crate test;
4+
use std::hint::black_box;
45
use test::Bencher;
56

67
#[test]
@@ -364,3 +365,36 @@ fn union_hybrid_sparse_full_small_domain(b: &mut Bencher) {
364365
sparse.union(&dense);
365366
})
366367
}
368+
369+
#[bench]
370+
fn bench_insert(b: &mut Bencher) {
371+
let mut bs = BitSet::new_filled(99999usize);
372+
b.iter(|| {
373+
black_box(bs.insert(black_box(100u32)));
374+
});
375+
}
376+
377+
#[bench]
378+
fn bench_remove(b: &mut Bencher) {
379+
let mut bs = BitSet::new_filled(99999usize);
380+
b.iter(|| {
381+
black_box(bs.remove(black_box(100u32)));
382+
});
383+
}
384+
385+
#[bench]
386+
fn bench_iter(b: &mut Bencher) {
387+
let bs = BitSet::new_filled(99999usize);
388+
b.iter(|| {
389+
bs.iter().map(|b: usize| black_box(b)).for_each(drop);
390+
});
391+
}
392+
393+
#[bench]
394+
fn bench_intersect(b: &mut Bencher) {
395+
let mut ba: BitSet<u32> = BitSet::new_filled(99999usize);
396+
let bb = BitSet::new_filled(99999usize);
397+
b.iter(|| {
398+
ba.intersect(black_box(&bb));
399+
});
400+
}

0 commit comments

Comments
 (0)