Skip to content

Commit 8b14ab1

Browse files
committed
Revise seq benches
1 parent 6a3d149 commit 8b14ab1

File tree

1 file changed

+47
-11
lines changed

1 file changed

+47
-11
lines changed

benches/seq.rs

+47-11
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,75 @@ use rand::prelude::*;
1010
use rand::seq::*;
1111

1212
#[bench]
13-
fn misc_shuffle_100(b: &mut Bencher) {
13+
fn seq_shuffle_100(b: &mut Bencher) {
1414
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
1515
let x : &mut [usize] = &mut [1; 100];
1616
b.iter(|| {
17-
rng.shuffle(x);
17+
x.shuffle(&mut rng);
1818
x[0]
1919
})
2020
}
2121

2222
#[bench]
23-
fn misc_sample_iter_10_of_100(b: &mut Bencher) {
23+
fn seq_slice_choose_1_of_1000(b: &mut Bencher) {
24+
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
25+
let x : &[usize] = &[1; 1000];
26+
b.iter(|| {
27+
x.choose(&mut rng)
28+
})
29+
}
30+
31+
#[bench]
32+
fn seq_slice_choose_multiple_1_of_1000(b: &mut Bencher) {
33+
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
34+
let x : &[usize] = &[1; 1000];
35+
let mut buf = [0; 1];
36+
b.iter(|| {
37+
for (v, slot) in x.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {
38+
*slot = *v;
39+
}
40+
buf
41+
})
42+
}
43+
44+
#[bench]
45+
fn seq_slice_choose_multiple_10_of_100(b: &mut Bencher) {
46+
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
47+
let x : &[usize] = &[1; 100];
48+
let mut buf = [0; 10];
49+
b.iter(|| {
50+
for (v, slot) in x.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {
51+
*slot = *v;
52+
}
53+
buf
54+
})
55+
}
56+
57+
#[bench]
58+
fn seq_iter_choose_from_100(b: &mut Bencher) {
2459
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
2560
let x : &[usize] = &[1; 100];
2661
b.iter(|| {
27-
sample_iter(&mut rng, x, 10).unwrap_or_else(|e| e)
62+
x.iter().cloned().choose(&mut rng)
2863
})
2964
}
3065

3166
#[bench]
32-
fn misc_sample_slice_10_of_100(b: &mut Bencher) {
67+
fn seq_iter_choose_multiple_10_of_100(b: &mut Bencher) {
3368
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
3469
let x : &[usize] = &[1; 100];
3570
b.iter(|| {
36-
sample_slice(&mut rng, x, 10)
71+
x.iter().cloned().choose_multiple(&mut rng, 10)
3772
})
3873
}
3974

4075
#[bench]
41-
fn misc_sample_slice_ref_10_of_100(b: &mut Bencher) {
76+
fn seq_iter_choose_multiple_fill_10_of_100(b: &mut Bencher) {
4277
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
4378
let x : &[usize] = &[1; 100];
79+
let mut buf = [0; 10];
4480
b.iter(|| {
45-
sample_slice_ref(&mut rng, x, 10)
81+
x.iter().cloned().choose_multiple_fill(&mut rng, &mut buf)
4682
})
4783
}
4884

@@ -58,6 +94,6 @@ macro_rules! sample_indices {
5894
}
5995
}
6096

61-
sample_indices!(misc_sample_indices_10_of_1k, 10, 1000);
62-
sample_indices!(misc_sample_indices_50_of_1k, 50, 1000);
63-
sample_indices!(misc_sample_indices_100_of_1k, 100, 1000);
97+
sample_indices!(seq_sample_indices_10_of_1k, 10, 1000);
98+
sample_indices!(seq_sample_indices_50_of_1k, 50, 1000);
99+
sample_indices!(seq_sample_indices_100_of_1k, 100, 1000);

0 commit comments

Comments
 (0)