Files
bit-set/benches/bench.rs
2018-01-12 18:17:59 +01:00

45 lines
878 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 contains(data: &[u64]) {
let set = BitSet::new();
for v in data {
set.contains(v);
}
}
fn insert(data: &[u64]) {
let mut set = BitSet::new();
for v in data {
set.insert(*v);
}
}
fn criterion_benchmark(c: &mut Criterion) {
let data: Vec<_> = default_set(1000);
c.bench_function("contains", |b| b.iter(|| contains(&data)));
c.bench_function("insert", |b| b.iter(|| insert(&data)));
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);