Skip to content

Commit 1b118c2

Browse files
committed
Revise seq benches
1 parent c083d58 commit 1b118c2

File tree

1 file changed

+43
-11
lines changed

1 file changed

+43
-11
lines changed

benches/seq.rs

+43-11
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,71 @@ use rand::prelude::*;
99
use rand::seq::*;
1010

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

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

3061
#[bench]
31-
fn misc_sample_slice_10_of_100(b: &mut Bencher) {
62+
fn seq_iter_choose_multiple_10_of_100(b: &mut Bencher) {
3263
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
3364
let x : &[usize] = &[1; 100];
3465
b.iter(|| {
35-
sample_slice(&mut rng, x, 10)
66+
x.iter().cloned().choose_multiple(&mut rng, 10)
3667
})
3768
}
3869

3970
#[bench]
40-
fn misc_sample_slice_ref_10_of_100(b: &mut Bencher) {
71+
fn seq_iter_choose_multiple_fill_10_of_100(b: &mut Bencher) {
4172
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
4273
let x : &[usize] = &[1; 100];
74+
let mut buf = [0; 10];
4375
b.iter(|| {
44-
sample_slice_ref(&mut rng, x, 10)
76+
x.iter().cloned().choose_multiple_fill(&mut rng, &mut buf)
4577
})
4678
}
4779

@@ -57,6 +89,6 @@ macro_rules! sample_indices {
5789
}
5890
}
5991

60-
sample_indices!(misc_sample_indices_10_of_1k, 10, 1000);
61-
sample_indices!(misc_sample_indices_50_of_1k, 50, 1000);
62-
sample_indices!(misc_sample_indices_100_of_1k, 100, 1000);
92+
sample_indices!(seq_sample_indices_10_of_1k, 10, 1000);
93+
sample_indices!(seq_sample_indices_50_of_1k, 50, 1000);
94+
sample_indices!(seq_sample_indices_100_of_1k, 100, 1000);

0 commit comments

Comments
 (0)