Skip to content

Commit 9263b5c

Browse files
committed
Clean up benchmarks
1 parent 5953334 commit 9263b5c

File tree

3 files changed

+39
-33
lines changed

3 files changed

+39
-33
lines changed

benches/distributions.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ extern crate rand;
88
const RAND_BENCH_N: u64 = 1000;
99

1010
use std::mem::size_of;
11-
use test::{black_box, Bencher};
11+
use test::Bencher;
1212

1313
use rand::{Rng, FromEntropy, XorShiftRng};
1414
use rand::distributions::*;
@@ -26,7 +26,7 @@ macro_rules! distr_int {
2626
let x: $ty = distr.sample(&mut rng);
2727
accum = accum.wrapping_add(x);
2828
}
29-
black_box(accum);
29+
accum
3030
});
3131
b.bytes = size_of::<$ty>() as u64 * ::RAND_BENCH_N;
3232
}
@@ -46,7 +46,7 @@ macro_rules! distr_float {
4646
let x: $ty = distr.sample(&mut rng);
4747
accum += x;
4848
}
49-
black_box(accum);
49+
accum
5050
});
5151
b.bytes = size_of::<$ty>() as u64 * ::RAND_BENCH_N;
5252
}
@@ -61,10 +61,12 @@ macro_rules! distr {
6161
let distr = $distr;
6262

6363
b.iter(|| {
64+
let mut accum = 0u32;
6465
for _ in 0..::RAND_BENCH_N {
6566
let x: $ty = distr.sample(&mut rng);
66-
black_box(x);
67+
accum = accum.wrapping_add(x as u32);
6768
}
69+
accum
6870
});
6971
b.bytes = size_of::<$ty>() as u64 * ::RAND_BENCH_N;
7072
}
@@ -109,6 +111,7 @@ distr_float!(distr_gamma_large_shape, f64, Gamma::new(10., 1.0));
109111
distr_float!(distr_gamma_small_shape, f64, Gamma::new(0.1, 1.0));
110112
distr_int!(distr_binomial, u64, Binomial::new(20, 0.7));
111113
distr_int!(distr_poisson, u64, Poisson::new(4.0));
114+
distr!(distr_bernoulli, bool, Bernoulli::new(0.18));
112115

113116

114117
// construct and sample from a range
@@ -126,7 +129,7 @@ macro_rules! gen_range_int {
126129
// force recalculation of range each time
127130
high = high.wrapping_add(1) & std::$ty::MAX;
128131
}
129-
black_box(accum);
132+
accum
130133
});
131134
b.bytes = size_of::<$ty>() as u64 * ::RAND_BENCH_N;
132135
}
@@ -151,7 +154,7 @@ fn dist_iter(b: &mut Bencher) {
151154
for _ in 0..::RAND_BENCH_N {
152155
accum += iter.next().unwrap();
153156
}
154-
black_box(accum);
157+
accum
155158
});
156159
b.bytes = size_of::<f64>() as u64 * ::RAND_BENCH_N;
157160
}

benches/generators.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ macro_rules! gen_uint {
5151
for _ in 0..RAND_BENCH_N {
5252
accum = accum.wrapping_add(rng.gen::<$ty>());
5353
}
54-
black_box(accum);
54+
accum
5555
});
5656
b.bytes = size_of::<$ty>() as u64 * RAND_BENCH_N;
5757
}
@@ -82,7 +82,7 @@ gen_uint!(gen_u64_os, u64, OsRng::new().unwrap());
8282
fn gen_u64_jitter(b: &mut Bencher) {
8383
let mut rng = JitterRng::new().unwrap();
8484
b.iter(|| {
85-
black_box(rng.gen::<u64>());
85+
rng.gen::<u64>()
8686
});
8787
b.bytes = size_of::<u64>() as u64;
8888
}
@@ -94,7 +94,7 @@ macro_rules! init_gen {
9494
let mut rng = XorShiftRng::from_entropy();
9595
b.iter(|| {
9696
let r2 = $gen::from_rng(&mut rng).unwrap();
97-
black_box(r2);
97+
r2
9898
});
9999
}
100100
}
@@ -109,7 +109,7 @@ init_gen!(init_chacha, ChaChaRng);
109109
#[bench]
110110
fn init_jitter(b: &mut Bencher) {
111111
b.iter(|| {
112-
black_box(JitterRng::new().unwrap());
112+
JitterRng::new().unwrap()
113113
});
114114
}
115115

@@ -144,7 +144,7 @@ macro_rules! reseeding_uint {
144144
for _ in 0..RAND_BENCH_N {
145145
accum = accum.wrapping_add(rng.gen::<$ty>());
146146
}
147-
black_box(accum);
147+
accum
148148
});
149149
b.bytes = size_of::<$ty>() as u64 * RAND_BENCH_N;
150150
}
@@ -165,7 +165,7 @@ macro_rules! threadrng_uint {
165165
for _ in 0..RAND_BENCH_N {
166166
accum = accum.wrapping_add(rng.gen::<$ty>());
167167
}
168-
black_box(accum);
168+
accum
169169
});
170170
b.bytes = size_of::<$ty>() as u64 * RAND_BENCH_N;
171171
}

benches/misc.rs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,15 @@ extern crate rand;
55

66
const RAND_BENCH_N: u64 = 1000;
77

8-
use test::{black_box, Bencher};
8+
use test::Bencher;
99

1010
use rand::prelude::*;
1111
use rand::seq::*;
1212

1313
#[bench]
1414
fn misc_gen_bool_const(b: &mut Bencher) {
15-
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
15+
let mut rng = StdRng::from_rng(&mut thread_rng()).unwrap();
1616
b.iter(|| {
17-
// Can be evaluated at compile time.
1817
let mut accum = true;
1918
for _ in 0..::RAND_BENCH_N {
2019
accum ^= rng.gen_bool(0.18);
@@ -25,19 +24,21 @@ fn misc_gen_bool_const(b: &mut Bencher) {
2524

2625
#[bench]
2726
fn misc_gen_bool_var(b: &mut Bencher) {
28-
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
27+
let mut rng = StdRng::from_rng(&mut thread_rng()).unwrap();
2928
b.iter(|| {
29+
let mut accum = true;
3030
let mut p = 0.18;
31-
black_box(&mut p); // Avoid constant folding.
3231
for _ in 0..::RAND_BENCH_N {
33-
black_box(rng.gen_bool(p));
32+
accum ^= rng.gen_bool(p);
33+
p += 0.0001;
3434
}
35+
accum
3536
})
3637
}
3738

3839
#[bench]
3940
fn misc_bernoulli_const(b: &mut Bencher) {
40-
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
41+
let mut rng = StdRng::from_rng(&mut thread_rng()).unwrap();
4142
let d = rand::distributions::Bernoulli::new(0.18);
4243
b.iter(|| {
4344
// Can be evaluated at compile time.
@@ -51,14 +52,16 @@ fn misc_bernoulli_const(b: &mut Bencher) {
5152

5253
#[bench]
5354
fn misc_bernoulli_var(b: &mut Bencher) {
54-
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
55+
let mut rng = StdRng::from_rng(&mut thread_rng()).unwrap();
5556
b.iter(|| {
57+
let mut accum = true;
5658
let mut p = 0.18;
57-
black_box(&mut p); // Avoid constant folding.
58-
let d = rand::distributions::Bernoulli::new(p);
5959
for _ in 0..::RAND_BENCH_N {
60-
black_box(rng.sample(d));
60+
let d = rand::distributions::Bernoulli::new(p);
61+
accum ^= rng.sample(d);
62+
p += 0.0001;
6163
}
64+
accum
6265
})
6366
}
6467

@@ -70,7 +73,7 @@ macro_rules! sample_binomial {
7073
let (n, p) = ($n, $p);
7174
b.iter(|| {
7275
let d = rand::distributions::Binomial::new(n, p);
73-
black_box(rng.sample(d));
76+
rng.sample(d)
7477
})
7578
}
7679
}
@@ -88,7 +91,7 @@ fn misc_shuffle_100(b: &mut Bencher) {
8891
let x : &mut [usize] = &mut [1; 100];
8992
b.iter(|| {
9093
rng.shuffle(x);
91-
black_box(&x);
94+
x[0]
9295
})
9396
}
9497

@@ -97,7 +100,7 @@ fn misc_sample_iter_10_of_100(b: &mut Bencher) {
97100
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
98101
let x : &[usize] = &[1; 100];
99102
b.iter(|| {
100-
black_box(sample_iter(&mut rng, x, 10).unwrap_or_else(|e| e));
103+
sample_iter(&mut rng, x, 10).unwrap_or_else(|e| e)
101104
})
102105
}
103106

@@ -106,7 +109,7 @@ fn misc_sample_slice_10_of_100(b: &mut Bencher) {
106109
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
107110
let x : &[usize] = &[1; 100];
108111
b.iter(|| {
109-
black_box(sample_slice(&mut rng, x, 10));
112+
sample_slice(&mut rng, x, 10)
110113
})
111114
}
112115

@@ -115,7 +118,7 @@ fn misc_sample_slice_ref_10_of_100(b: &mut Bencher) {
115118
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
116119
let x : &[usize] = &[1; 100];
117120
b.iter(|| {
118-
black_box(sample_slice_ref(&mut rng, x, 10));
121+
sample_slice_ref(&mut rng, x, 10)
119122
})
120123
}
121124

@@ -125,7 +128,7 @@ macro_rules! sample_indices {
125128
fn $name(b: &mut Bencher) {
126129
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
127130
b.iter(|| {
128-
black_box(sample_indices(&mut rng, $length, $amount));
131+
sample_indices(&mut rng, $length, $amount)
129132
})
130133
}
131134
}
@@ -141,7 +144,7 @@ fn gen_1k_iter_repeat(b: &mut Bencher) {
141144
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
142145
b.iter(|| {
143146
let v: Vec<u64> = iter::repeat(()).map(|()| rng.gen()).take(128).collect();
144-
black_box(v);
147+
v
145148
});
146149
b.bytes = 1024;
147150
}
@@ -152,7 +155,7 @@ fn gen_1k_gen_iter(b: &mut Bencher) {
152155
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
153156
b.iter(|| {
154157
let v: Vec<u64> = rng.gen_iter().take(128).collect();
155-
black_box(v);
158+
v
156159
});
157160
b.bytes = 1024;
158161
}
@@ -163,7 +166,7 @@ fn gen_1k_sample_iter(b: &mut Bencher) {
163166
let mut rng = SmallRng::from_rng(&mut thread_rng()).unwrap();
164167
b.iter(|| {
165168
let v: Vec<u64> = Standard.sample_iter(&mut rng).take(128).collect();
166-
black_box(v);
169+
v
167170
});
168171
b.bytes = 1024;
169172
}
@@ -174,7 +177,7 @@ fn gen_1k_fill(b: &mut Bencher) {
174177
let mut buf = [0u64; 128];
175178
b.iter(|| {
176179
rng.fill(&mut buf[..]);
177-
black_box(buf);
180+
buf
178181
});
179182
b.bytes = 1024;
180183
}

0 commit comments

Comments
 (0)