1
1
use core:: iter:: * ;
2
- use test:: { Bencher , black_box } ;
2
+ use test:: { black_box , Bencher } ;
3
3
4
4
#[ bench]
5
5
fn bench_rposition ( b : & mut Bencher ) {
@@ -14,7 +14,11 @@ fn bench_skip_while(b: &mut Bencher) {
14
14
b. iter ( || {
15
15
let it = 0 ..100 ;
16
16
let mut sum = 0 ;
17
- it. skip_while ( |& x| { sum += x; sum < 4000 } ) . all ( |_| true ) ;
17
+ it. skip_while ( |& x| {
18
+ sum += x;
19
+ sum < 4000
20
+ } )
21
+ . all ( |_| true ) ;
18
22
} ) ;
19
23
}
20
24
@@ -29,7 +33,9 @@ fn bench_multiple_take(b: &mut Bencher) {
29
33
} ) ;
30
34
}
31
35
32
- fn scatter ( x : i32 ) -> i32 { ( x * 31 ) % 127 }
36
+ fn scatter ( x : i32 ) -> i32 {
37
+ ( x * 31 ) % 127
38
+ }
33
39
34
40
#[ bench]
35
41
fn bench_max_by_key ( b : & mut Bencher ) {
@@ -76,23 +82,21 @@ pub fn add_zip(xs: &[f32], ys: &mut [f32]) {
76
82
fn bench_zip_copy ( b : & mut Bencher ) {
77
83
let source = vec ! [ 0u8 ; 16 * 1024 ] ;
78
84
let mut dst = black_box ( vec ! [ 0u8 ; 16 * 1024 ] ) ;
79
- b. iter ( || {
80
- copy_zip ( & source, & mut dst)
81
- } )
85
+ b. iter ( || copy_zip ( & source, & mut dst) )
82
86
}
83
87
84
88
#[ bench]
85
89
fn bench_zip_add ( b : & mut Bencher ) {
86
90
let source = vec ! [ 1. ; 16 * 1024 ] ;
87
91
let mut dst = vec ! [ 0. ; 16 * 1024 ] ;
88
- b. iter ( || {
89
- add_zip ( & source, & mut dst)
90
- } ) ;
92
+ b. iter ( || add_zip ( & source, & mut dst) ) ;
91
93
}
92
94
93
95
/// `Iterator::for_each` implemented as a plain loop.
94
- fn for_each_loop < I , F > ( iter : I , mut f : F ) where
95
- I : Iterator , F : FnMut ( I :: Item )
96
+ fn for_each_loop < I , F > ( iter : I , mut f : F )
97
+ where
98
+ I : Iterator ,
99
+ F : FnMut ( I :: Item ) ,
96
100
{
97
101
for item in iter {
98
102
f ( item) ;
@@ -101,8 +105,10 @@ fn for_each_loop<I, F>(iter: I, mut f: F) where
101
105
102
106
/// `Iterator::for_each` implemented with `fold` for internal iteration.
103
107
/// (except when `by_ref()` effectively disables that optimization.)
104
- fn for_each_fold < I , F > ( iter : I , mut f : F ) where
105
- I : Iterator , F : FnMut ( I :: Item )
108
+ fn for_each_fold < I , F > ( iter : I , mut f : F )
109
+ where
110
+ I : Iterator ,
111
+ F : FnMut ( I :: Item ) ,
106
112
{
107
113
iter. fold ( ( ) , move |( ) , item| f ( item) ) ;
108
114
}
@@ -137,25 +143,20 @@ fn bench_for_each_chain_ref_fold(b: &mut Bencher) {
137
143
} ) ;
138
144
}
139
145
140
-
141
146
/// Helper to benchmark `sum` for iterators taken by value which
142
147
/// can optimize `fold`, and by reference which cannot.
143
148
macro_rules! bench_sums {
144
149
( $bench_sum: ident, $bench_ref_sum: ident, $iter: expr) => {
145
150
#[ bench]
146
151
fn $bench_sum( b: & mut Bencher ) {
147
- b. iter( || -> i64 {
148
- $iter. map( black_box) . sum( )
149
- } ) ;
152
+ b. iter( || -> i64 { $iter. map( black_box) . sum( ) } ) ;
150
153
}
151
154
152
155
#[ bench]
153
156
fn $bench_ref_sum( b: & mut Bencher ) {
154
- b. iter( || -> i64 {
155
- $iter. map( black_box) . by_ref( ) . sum( )
156
- } ) ;
157
+ b. iter( || -> i64 { $iter. map( black_box) . by_ref( ) . sum( ) } ) ;
157
158
}
158
- }
159
+ } ;
159
160
}
160
161
161
162
bench_sums ! {
@@ -286,7 +287,10 @@ fn bench_zip_then_skip(b: &mut Bencher) {
286
287
let t: Vec < _ > = ( 0 ..100_000 ) . collect ( ) ;
287
288
288
289
b. iter ( || {
289
- let s = v. iter ( ) . zip ( t. iter ( ) ) . skip ( 10000 )
290
+ let s = v
291
+ . iter ( )
292
+ . zip ( t. iter ( ) )
293
+ . skip ( 10000 )
290
294
. take_while ( |t| * t. 0 < 10100 )
291
295
. map ( |( a, b) | * a + * b)
292
296
. sum :: < u64 > ( ) ;
@@ -299,7 +303,10 @@ fn bench_skip_then_zip(b: &mut Bencher) {
299
303
let t: Vec < _ > = ( 0 ..100_000 ) . collect ( ) ;
300
304
301
305
b. iter ( || {
302
- let s = v. iter ( ) . skip ( 10000 ) . zip ( t. iter ( ) . skip ( 10000 ) )
306
+ let s = v
307
+ . iter ( )
308
+ . skip ( 10000 )
309
+ . zip ( t. iter ( ) . skip ( 10000 ) )
303
310
. take_while ( |t| * t. 0 < 10100 )
304
311
. map ( |( a, b) | * a + * b)
305
312
. sum :: < u64 > ( ) ;
@@ -309,23 +316,17 @@ fn bench_skip_then_zip(b: &mut Bencher) {
309
316
310
317
#[ bench]
311
318
fn bench_filter_count ( b : & mut Bencher ) {
312
- b. iter ( || {
313
- ( 0i64 ..1000000 ) . map ( black_box) . filter ( |x| x % 3 == 0 ) . count ( )
314
- } )
319
+ b. iter ( || ( 0i64 ..1000000 ) . map ( black_box) . filter ( |x| x % 3 == 0 ) . count ( ) )
315
320
}
316
321
317
322
#[ bench]
318
323
fn bench_filter_ref_count ( b : & mut Bencher ) {
319
- b. iter ( || {
320
- ( 0i64 ..1000000 ) . map ( black_box) . by_ref ( ) . filter ( |x| x % 3 == 0 ) . count ( )
321
- } )
324
+ b. iter ( || ( 0i64 ..1000000 ) . map ( black_box) . by_ref ( ) . filter ( |x| x % 3 == 0 ) . count ( ) )
322
325
}
323
326
324
327
#[ bench]
325
328
fn bench_filter_chain_count ( b : & mut Bencher ) {
326
- b. iter ( || {
327
- ( 0i64 ..1000000 ) . chain ( 0 ..1000000 ) . map ( black_box) . filter ( |x| x % 3 == 0 ) . count ( )
328
- } )
329
+ b. iter ( || ( 0i64 ..1000000 ) . chain ( 0 ..1000000 ) . map ( black_box) . filter ( |x| x % 3 == 0 ) . count ( ) )
329
330
}
330
331
331
332
#[ bench]
0 commit comments