Skip to content

Commit bd9d277

Browse files
committed
Add benchmarks for Iterator::array_chunks
1 parent 45bfc7f commit bd9d277

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

library/core/benches/iter.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,3 +367,44 @@ fn bench_partial_cmp(b: &mut Bencher) {
367367
fn bench_lt(b: &mut Bencher) {
368368
b.iter(|| (0..100000).map(black_box).lt((0..100000).map(black_box)))
369369
}
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+
}

library/core/benches/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// wasm32 does not support benches (no time).
22
#![cfg(not(target_arch = "wasm32"))]
3+
#![feature(array_chunks)]
34
#![feature(flt2dec)]
5+
#![feature(iter_array_chunks)]
46
#![feature(test)]
57

68
extern crate test;

0 commit comments

Comments
 (0)