Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
This commit is contained in:
98
vendor/fastrand/benches/bench.rs
vendored
Normal file
98
vendor/fastrand/benches/bench.rs
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
#![feature(test)]
|
||||
|
||||
extern crate test;
|
||||
|
||||
use rand::prelude::*;
|
||||
use test::Bencher;
|
||||
use wyhash::WyRng;
|
||||
|
||||
#[bench]
|
||||
fn shuffle_wyhash(b: &mut Bencher) {
|
||||
let mut rng = WyRng::from_rng(thread_rng()).unwrap();
|
||||
let mut x = (0..100).collect::<Vec<usize>>();
|
||||
b.iter(|| {
|
||||
x.shuffle(&mut rng);
|
||||
x[0]
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn shuffle_fastrand(b: &mut Bencher) {
|
||||
let mut rng = fastrand::Rng::new();
|
||||
let mut x = (0..100).collect::<Vec<usize>>();
|
||||
b.iter(|| {
|
||||
rng.shuffle(&mut x);
|
||||
x[0]
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn u8_wyhash(b: &mut Bencher) {
|
||||
let mut rng = WyRng::from_rng(thread_rng()).unwrap();
|
||||
b.iter(|| {
|
||||
let mut sum = 0u8;
|
||||
for _ in 0..10_000 {
|
||||
sum = sum.wrapping_add(rng.gen::<u8>());
|
||||
}
|
||||
sum
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn u8_fastrand(b: &mut Bencher) {
|
||||
let mut rng = fastrand::Rng::new();
|
||||
b.iter(|| {
|
||||
let mut sum = 0u8;
|
||||
for _ in 0..10_000 {
|
||||
sum = sum.wrapping_add(rng.u8(..));
|
||||
}
|
||||
sum
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn u32_wyhash(b: &mut Bencher) {
|
||||
let mut rng = WyRng::from_rng(thread_rng()).unwrap();
|
||||
b.iter(|| {
|
||||
let mut sum = 0u32;
|
||||
for _ in 0..10_000 {
|
||||
sum = sum.wrapping_add(rng.gen::<u32>());
|
||||
}
|
||||
sum
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn u32_fastrand(b: &mut Bencher) {
|
||||
let mut rng = fastrand::Rng::new();
|
||||
b.iter(|| {
|
||||
let mut sum = 0u32;
|
||||
for _ in 0..10_000 {
|
||||
sum = sum.wrapping_add(rng.u32(..));
|
||||
}
|
||||
sum
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn fill(b: &mut Bencher) {
|
||||
let mut rng = fastrand::Rng::new();
|
||||
b.iter(|| {
|
||||
// Pick a size that isn't divisble by 8.
|
||||
let mut bytes = [0u8; 367];
|
||||
rng.fill(&mut bytes);
|
||||
bytes
|
||||
})
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn fill_naive(b: &mut Bencher) {
|
||||
let mut rng = fastrand::Rng::new();
|
||||
b.iter(|| {
|
||||
let mut bytes = [0u8; 367];
|
||||
for item in &mut bytes {
|
||||
*item = rng.u8(..);
|
||||
}
|
||||
bytes
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user