removes legacy weighted_shuffle and weighted_best methods (#24125)
Older weighted_shuffle is based on a heuristic which results in biased samples as shown in: https://github.com/solana-labs/solana/pull/18343 and can be replaced with WeightedShuffle. Also, as described in: https://github.com/solana-labs/solana/pull/13919 weighted_best can be replaced with rand::distributions::WeightedIndex, or WeightdShuffle::first.
This commit is contained in:
@@ -5,7 +5,7 @@ extern crate test;
|
||||
use {
|
||||
rand::{Rng, SeedableRng},
|
||||
rand_chacha::ChaChaRng,
|
||||
solana_gossip::weighted_shuffle::{weighted_shuffle, WeightedShuffle},
|
||||
solana_gossip::weighted_shuffle::WeightedShuffle,
|
||||
std::iter::repeat_with,
|
||||
test::Bencher,
|
||||
};
|
||||
@@ -15,18 +15,7 @@ fn make_weights<R: Rng>(rng: &mut R) -> Vec<u64> {
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_weighted_shuffle_old(bencher: &mut Bencher) {
|
||||
let mut seed = [0u8; 32];
|
||||
let mut rng = rand::thread_rng();
|
||||
let weights = make_weights(&mut rng);
|
||||
bencher.iter(|| {
|
||||
rng.fill(&mut seed[..]);
|
||||
weighted_shuffle::<u64, &u64, std::slice::Iter<'_, u64>>(weights.iter(), seed);
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_weighted_shuffle_new(bencher: &mut Bencher) {
|
||||
fn bench_weighted_shuffle(bencher: &mut Bencher) {
|
||||
let mut seed = [0u8; 32];
|
||||
let mut rng = rand::thread_rng();
|
||||
let weights = make_weights(&mut rng);
|
||||
|
Reference in New Issue
Block a user