11use 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 ,
43} ;
54use ndarray:: prelude:: * ;
65use ndarray_stats:: Sort1dExt ;
76use rand:: prelude:: * ;
87
98fn get_from_sorted_mut ( c : & mut Criterion ) {
109 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| {
1414 let mut rng = StdRng :: seed_from_u64 ( 42 ) ;
1515 let mut data: Vec < _ > = ( 0 ..len) . collect ( ) ;
1616 data. shuffle ( & mut rng) ;
1717 let indices: Vec < _ > = ( 0 ..len) . step_by ( len / 10 ) . collect ( ) ;
18- bencher . iter_batched (
18+ b . iter_batched (
1919 || Array1 :: from ( data. clone ( ) ) ,
2020 |mut arr| {
2121 for & i in & indices {
@@ -24,34 +24,31 @@ fn get_from_sorted_mut(c: &mut Criterion) {
2424 } ,
2525 BatchSize :: SmallInput ,
2626 )
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 ( ) ;
3230}
3331
3432fn get_many_from_sorted_mut ( c : & mut Criterion ) {
3533 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| {
3938 let mut rng = StdRng :: seed_from_u64 ( 42 ) ;
4039 let mut data: Vec < _ > = ( 0 ..len) . collect ( ) ;
4140 data. shuffle ( & mut rng) ;
4241 let indices: Array1 < _ > = ( 0 ..len) . step_by ( len / 10 ) . collect ( ) ;
43- bencher . iter_batched (
42+ b . iter_batched (
4443 || Array1 :: from ( data. clone ( ) ) ,
4544 |mut arr| {
4645 black_box ( arr. get_many_from_sorted_mut ( & indices) ) ;
4746 } ,
4847 BatchSize :: SmallInput ,
4948 )
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 ( ) ;
5552}
5653
5754criterion_group ! {
0 commit comments