Skip to content

Commit

Permalink
make benchmark deterministic
Browse files Browse the repository at this point in the history
  • Loading branch information
KillingSpark committed Aug 27, 2023
1 parent c801a4b commit 6242d15
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ thiserror = { package = "thiserror-core", version = "1.0.38", default-features =

[dev-dependencies]
criterion = "0.3"
rand = "0.8.5"
rand = {version = "0.8.5", features = ["small_rng"]}

[features]
default = ["std"]
Expand Down
16 changes: 9 additions & 7 deletions benches/reversedbitreader_bench.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use rand::Rng;
use rand::{Rng, SeedableRng};
use ruzstd::decoding::bit_reader_reverse::BitReaderReversed;

fn fibonacci(br: &mut BitReaderReversed, accesses: &[u8]) -> u64 {
fn do_all_accesses(br: &mut BitReaderReversed, accesses: &[u8]) -> u64 {
let mut sum = 0;
for x in accesses {
sum += br.get_bits(*x).unwrap() as u64;
Expand All @@ -12,24 +12,26 @@ fn fibonacci(br: &mut BitReaderReversed, accesses: &[u8]) -> u64 {
}

fn criterion_benchmark(c: &mut Criterion) {
let mut rng = rand::thread_rng();
const DATA_SIZE: usize = 1024 * 1024;

let mut rng = rand::rngs::SmallRng::seed_from_u64(0xDEADBEEF);
let mut rand_vec = vec![];
for _ in 0..100000 {
for _ in 0..DATA_SIZE {
rand_vec.push(rng.gen());
}

let mut access_vec = vec![];
let mut br = BitReaderReversed::new(&rand_vec);
while br.bits_remaining() > 0 {
let x = rng.gen_range(1..20);
let x = rng.gen_range(0..20);
br.get_bits(x).unwrap();
access_vec.push(x);
}

c.bench_function("fib 20", |b| {
c.bench_function("reversed bitreader", |b| {
b.iter(|| {
br.reset(&rand_vec);
fibonacci(&mut br, &access_vec)
do_all_accesses(&mut br, &access_vec)
})
});
}
Expand Down

0 comments on commit 6242d15

Please sign in to comment.