Skip to content

Commit 1e3e6c7

Browse files
committed
Provide a benchmark for bitset hybrid union
1 parent 50a0def commit 1e3e6c7

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/librustc_data_structures/bit_set.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ use std::iter;
55
use std::marker::PhantomData;
66
use std::mem;
77
use std::slice;
8+
#[cfg(test)]
9+
extern crate test;
10+
#[cfg(test)]
11+
use test::Bencher;
812

913
pub type Word = u64;
1014
pub const WORD_BYTES: usize = mem::size_of::<Word>();
@@ -1132,3 +1136,17 @@ fn sparse_matrix_iter() {
11321136
}
11331137
assert!(iter.next().is_none());
11341138
}
1139+
1140+
#[bench]
1141+
fn union_hybrid_sparse_to_dense(b: &mut Bencher) {
1142+
let mut pre_dense: HybridBitSet<usize> = HybridBitSet::new_empty(256);
1143+
for i in 0..10 {
1144+
assert!(pre_dense.insert(i));
1145+
}
1146+
let pre_sparse: HybridBitSet<usize> = HybridBitSet::new_empty(256);
1147+
b.iter(|| {
1148+
let dense = pre_dense.clone();
1149+
let mut sparse = pre_sparse.clone();
1150+
sparse.union(&dense);
1151+
})
1152+
}

0 commit comments

Comments
 (0)