expands weighted-shuffle benchmarks (#179)
Adding separate benchmarks for WeightedShuffle::new and WeightedShuffle::shuffle.
This commit is contained in:
parent
8fa0e5c603
commit
f205d0e729
|
@ -11,18 +11,28 @@ use {
|
|||
};
|
||||
|
||||
fn make_weights<R: Rng>(rng: &mut R) -> Vec<u64> {
|
||||
repeat_with(|| rng.gen_range(1..100)).take(1000).collect()
|
||||
repeat_with(|| rng.gen_range(1..100)).take(4000).collect()
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_weighted_shuffle(bencher: &mut Bencher) {
|
||||
fn bench_weighted_shuffle_new(bencher: &mut Bencher) {
|
||||
let mut rng = rand::thread_rng();
|
||||
bencher.iter(|| {
|
||||
let weights = make_weights(&mut rng);
|
||||
std::hint::black_box(WeightedShuffle::new("", &weights));
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_weighted_shuffle_shuffle(bencher: &mut Bencher) {
|
||||
let mut seed = [0u8; 32];
|
||||
let mut rng = rand::thread_rng();
|
||||
let weights = make_weights(&mut rng);
|
||||
let weighted_shuffle = WeightedShuffle::new("", &weights);
|
||||
bencher.iter(|| {
|
||||
rng.fill(&mut seed[..]);
|
||||
WeightedShuffle::new("", &weights)
|
||||
.shuffle(&mut ChaChaRng::from_seed(seed))
|
||||
.collect::<Vec<_>>()
|
||||
let mut rng = ChaChaRng::from_seed(seed);
|
||||
let shuffle = weighted_shuffle.clone().shuffle(&mut rng);
|
||||
std::hint::black_box(shuffle.collect::<Vec<_>>());
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue