34 lines
682 B
Rust
34 lines
682 B
Rust
#[macro_use]
|
|
extern crate criterion;
|
|
extern crate rand;
|
|
|
|
extern crate bit_set;
|
|
|
|
use std::iter::FromIterator;
|
|
|
|
use criterion::Criterion;
|
|
use rand::{Rng, SeedableRng, XorShiftRng};
|
|
|
|
use bit_set::BitSet;
|
|
|
|
fn default_set<C: FromIterator<u64>>(n: usize) -> C {
|
|
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
|
|
|
|
(0..n).map(|_| rng.next_u64()).collect()
|
|
}
|
|
|
|
fn criterion_benchmark(c: &mut Criterion) {
|
|
let data: Vec<_> = default_set(1000);
|
|
|
|
c.bench_function("insert", |b| b.iter(|| {
|
|
let mut set = BitSet::new();
|
|
|
|
for v in &data {
|
|
set.insert(*v);
|
|
}
|
|
}));
|
|
}
|
|
|
|
criterion_group!(benches, criterion_benchmark);
|
|
criterion_main!(benches);
|