Skip to content

Commit b9a2c59

Browse files
committed
Add iterator benchmarks
1 parent 425da90 commit b9a2c59

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

benches/misc.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,47 @@ macro_rules! sample_indices {
8888
sample_indices!(misc_sample_indices_10_of_1k, 10, 1000);
8989
sample_indices!(misc_sample_indices_50_of_1k, 50, 1000);
9090
sample_indices!(misc_sample_indices_100_of_1k, 100, 1000);
91+
92+
#[bench]
93+
fn gen_1k_iter_repeat(b: &mut Bencher) {
94+
use std::iter;
95+
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
96+
b.iter(|| {
97+
let v: Vec<u64> = iter::repeat(()).map(|()| rng.gen()).take(128).collect();
98+
black_box(v);
99+
});
100+
b.bytes = 1024;
101+
}
102+
103+
#[bench]
104+
#[allow(deprecated)]
105+
fn gen_1k_gen_iter(b: &mut Bencher) {
106+
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
107+
b.iter(|| {
108+
let v: Vec<u64> = rng.gen_iter().take(128).collect();
109+
black_box(v);
110+
});
111+
b.bytes = 1024;
112+
}
113+
114+
#[bench]
115+
fn gen_1k_sample_iter(b: &mut Bencher) {
116+
use rand::distributions::{Distribution, Uniform};
117+
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
118+
b.iter(|| {
119+
let v: Vec<u64> = Uniform.sample_iter(&mut rng).take(128).collect();
120+
black_box(v);
121+
});
122+
b.bytes = 1024;
123+
}
124+
125+
#[bench]
126+
fn gen_1k_fill(b: &mut Bencher) {
127+
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
128+
let mut buf = [0u64; 128];
129+
b.iter(|| {
130+
rng.fill(&mut buf[..]);
131+
black_box(buf);
132+
});
133+
b.bytes = 1024;
134+
}

0 commit comments

Comments
 (0)