mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
add a benchmark for slice_iter.copied().array_chunks()
This commit is contained in:
parent
8be3ce9056
commit
963d6f757c
@ -1,4 +1,6 @@
|
||||
use core::iter::*;
|
||||
use core::mem;
|
||||
use core::num::Wrapping;
|
||||
use test::{black_box, Bencher};
|
||||
|
||||
#[bench]
|
||||
@ -398,3 +400,21 @@ fn bench_trusted_random_access_adapters(b: &mut Bencher) {
|
||||
acc
|
||||
})
|
||||
}
|
||||
|
||||
/// Exercises the iter::Copied specialization for slice::Iter
|
||||
#[bench]
|
||||
fn bench_copied_array_chunks(b: &mut Bencher) {
|
||||
let v = vec![1u8; 1024];
|
||||
|
||||
b.iter(|| {
|
||||
black_box(&v)
|
||||
.iter()
|
||||
.copied()
|
||||
.array_chunks::<{ mem::size_of::<u64>() }>()
|
||||
.map(|ary| {
|
||||
let d = u64::from_ne_bytes(ary);
|
||||
Wrapping(d.rotate_left(7).wrapping_add(1))
|
||||
})
|
||||
.sum::<Wrapping<u64>>()
|
||||
})
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#![feature(int_log)]
|
||||
#![feature(test)]
|
||||
#![feature(trusted_random_access)]
|
||||
#![feature(iter_array_chunks)]
|
||||
|
||||
extern crate test;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user