File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -367,3 +367,44 @@ fn bench_partial_cmp(b: &mut Bencher) {
367
367
fn bench_lt ( b : & mut Bencher ) {
368
368
b. iter ( || ( 0 ..100000 ) . map ( black_box) . lt ( ( 0 ..100000 ) . map ( black_box) ) )
369
369
}
370
+
371
+ #[ bench]
372
+ fn bench_iter_array_chunks ( b : & mut Bencher ) {
373
+ b. iter ( || {
374
+ let mut acc = 0 ;
375
+ let iter = ( 0i64 ..1000000 ) . array_chunks :: < 100 > ( ) . map ( black_box) ;
376
+ for_each_loop ( iter, |x| acc += x. iter ( ) . sum :: < i64 > ( ) ) ;
377
+ acc
378
+ } ) ;
379
+ }
380
+
381
+ #[ bench]
382
+ fn bench_iter_array_chunks_fold ( b : & mut Bencher ) {
383
+ b. iter ( || {
384
+ let mut acc = 0 ;
385
+ let iter = ( 0i64 ..1000000 ) . array_chunks :: < 100 > ( ) . map ( black_box) ;
386
+ for_each_fold ( iter, |x| acc += x. iter ( ) . sum :: < i64 > ( ) ) ;
387
+ acc
388
+ } ) ;
389
+ }
390
+
391
+ #[ bench]
392
+ fn bench_array_map ( b : & mut Bencher ) {
393
+ b. iter ( || {
394
+ let mut acc = 0 ;
395
+ let iter = ( 0i64 ..10000 ) . map ( black_box) . map ( |_| black_box ( [ 0i64 ; 100 ] ) ) ;
396
+ for_each_fold ( iter, |x| acc += x. iter ( ) . sum :: < i64 > ( ) ) ;
397
+ acc
398
+ } ) ;
399
+ }
400
+
401
+ #[ bench]
402
+ fn bench_slice_array_chunks ( b : & mut Bencher ) {
403
+ let vec: Vec < _ > = ( 0i64 ..1000000 ) . collect ( ) ;
404
+ b. iter ( || {
405
+ let mut acc = 0 ;
406
+ let iter = vec. array_chunks :: < 100 > ( ) . map ( black_box) ;
407
+ for_each_loop ( iter, |x| acc += x. iter ( ) . sum :: < i64 > ( ) ) ;
408
+ acc
409
+ } ) ;
410
+ }
Original file line number Diff line number Diff line change 1
1
// wasm32 does not support benches (no time).
2
2
#![ cfg( not( target_arch = "wasm32" ) ) ]
3
+ #![ feature( array_chunks) ]
3
4
#![ feature( flt2dec) ]
5
+ #![ feature( iter_array_chunks) ]
4
6
#![ feature( test) ]
5
7
6
8
extern crate test;
You can’t perform that action at this time.
0 commit comments