1
1
use criterion:: {
2
- black_box, criterion_group, criterion_main, AxisScale , BatchSize , Criterion ,
3
- ParameterizedBenchmark , PlotConfiguration ,
2
+ black_box, criterion_group, criterion_main, AxisScale , BatchSize , Criterion , PlotConfiguration ,
4
3
} ;
5
4
use ndarray:: prelude:: * ;
6
5
use ndarray_stats:: Sort1dExt ;
7
6
use rand:: prelude:: * ;
8
7
9
8
fn get_from_sorted_mut ( c : & mut Criterion ) {
10
9
let lens = vec ! [ 10 , 100 , 1000 , 10000 ] ;
11
- let benchmark = ParameterizedBenchmark :: new (
12
- "get_from_sorted_mut" ,
13
- |bencher, & len| {
10
+ let mut group = c. benchmark_group ( "get_from_sorted_mut" ) ;
11
+ group. plot_config ( PlotConfiguration :: default ( ) . summary_scale ( AxisScale :: Logarithmic ) ) ;
12
+ for len in & lens {
13
+ group. bench_with_input ( format ! ( "{}" , len) , len, |b, & len| {
14
14
let mut rng = StdRng :: seed_from_u64 ( 42 ) ;
15
15
let mut data: Vec < _ > = ( 0 ..len) . collect ( ) ;
16
16
data. shuffle ( & mut rng) ;
17
17
let indices: Vec < _ > = ( 0 ..len) . step_by ( len / 10 ) . collect ( ) ;
18
- bencher . iter_batched (
18
+ b . iter_batched (
19
19
|| Array1 :: from ( data. clone ( ) ) ,
20
20
|mut arr| {
21
21
for & i in & indices {
@@ -24,34 +24,31 @@ fn get_from_sorted_mut(c: &mut Criterion) {
24
24
} ,
25
25
BatchSize :: SmallInput ,
26
26
)
27
- } ,
28
- lens,
29
- )
30
- . plot_config ( PlotConfiguration :: default ( ) . summary_scale ( AxisScale :: Logarithmic ) ) ;
31
- c. bench ( "get_from_sorted_mut" , benchmark) ;
27
+ } ) ;
28
+ }
29
+ group. finish ( ) ;
32
30
}
33
31
34
32
fn get_many_from_sorted_mut ( c : & mut Criterion ) {
35
33
let lens = vec ! [ 10 , 100 , 1000 , 10000 ] ;
36
- let benchmark = ParameterizedBenchmark :: new (
37
- "get_many_from_sorted_mut" ,
38
- |bencher, & len| {
34
+ let mut group = c. benchmark_group ( "get_many_from_sorted_mut" ) ;
35
+ group. plot_config ( PlotConfiguration :: default ( ) . summary_scale ( AxisScale :: Logarithmic ) ) ;
36
+ for len in & lens {
37
+ group. bench_with_input ( format ! ( "{}" , len) , len, |b, & len| {
39
38
let mut rng = StdRng :: seed_from_u64 ( 42 ) ;
40
39
let mut data: Vec < _ > = ( 0 ..len) . collect ( ) ;
41
40
data. shuffle ( & mut rng) ;
42
41
let indices: Array1 < _ > = ( 0 ..len) . step_by ( len / 10 ) . collect ( ) ;
43
- bencher . iter_batched (
42
+ b . iter_batched (
44
43
|| Array1 :: from ( data. clone ( ) ) ,
45
44
|mut arr| {
46
45
black_box ( arr. get_many_from_sorted_mut ( & indices) ) ;
47
46
} ,
48
47
BatchSize :: SmallInput ,
49
48
)
50
- } ,
51
- lens,
52
- )
53
- . plot_config ( PlotConfiguration :: default ( ) . summary_scale ( AxisScale :: Logarithmic ) ) ;
54
- c. bench ( "get_many_from_sorted_mut" , benchmark) ;
49
+ } ) ;
50
+ }
51
+ group. finish ( ) ;
55
52
}
56
53
57
54
criterion_group ! {
0 commit comments