mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 00:42:42 +00:00
Introduce faster swap-or-not whole-list shuffle
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use criterion::Criterion;
|
||||
use criterion::{black_box, criterion_group, criterion_main, Benchmark};
|
||||
use swap_or_not_shuffle::get_permutated_index;
|
||||
use swap_or_not_shuffle::{get_permutated_index, get_permutated_list};
|
||||
|
||||
const SHUFFLE_ROUND_COUNT: u8 = 90;
|
||||
|
||||
@@ -48,6 +48,16 @@ fn shuffles(c: &mut Criterion) {
|
||||
.sample_size(10),
|
||||
);
|
||||
|
||||
c.bench(
|
||||
"_fast_ whole list shuffle",
|
||||
Benchmark::new("512 elements", move |b| {
|
||||
let seed = vec![42; 32];
|
||||
let list: Vec<usize> = (0..512).collect();
|
||||
b.iter(|| black_box(get_permutated_list(&list, &seed, SHUFFLE_ROUND_COUNT)))
|
||||
})
|
||||
.sample_size(10),
|
||||
);
|
||||
|
||||
c.bench(
|
||||
"whole list shuffle",
|
||||
Benchmark::new("16384 elements", move |b| {
|
||||
@@ -56,6 +66,16 @@ fn shuffles(c: &mut Criterion) {
|
||||
})
|
||||
.sample_size(10),
|
||||
);
|
||||
|
||||
c.bench(
|
||||
"_fast_ whole list shuffle",
|
||||
Benchmark::new("16384 elements", move |b| {
|
||||
let seed = vec![42; 32];
|
||||
let list: Vec<usize> = (0..16384).collect();
|
||||
b.iter(|| black_box(get_permutated_list(&list, &seed, SHUFFLE_ROUND_COUNT)))
|
||||
})
|
||||
.sample_size(10),
|
||||
);
|
||||
}
|
||||
|
||||
criterion_group!(benches, shuffles,);
|
||||
|
||||
Reference in New Issue
Block a user