add benchmark
This commit is contained in:
parent
879fb42596
commit
e3db41bf97
2 changed files with 25 additions and 0 deletions
|
@ -367,3 +367,27 @@ fn bench_partial_cmp(b: &mut Bencher) {
|
||||||
fn bench_lt(b: &mut Bencher) {
|
fn bench_lt(b: &mut Bencher) {
|
||||||
b.iter(|| (0..100000).map(black_box).lt((0..100000).map(black_box)))
|
b.iter(|| (0..100000).map(black_box).lt((0..100000).map(black_box)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[bench]
|
||||||
|
fn bench_trusted_random_access_adapters(b: &mut Bencher) {
|
||||||
|
let vec1: Vec<_> = (0usize..100000).collect();
|
||||||
|
let vec2 = black_box(vec1.clone());
|
||||||
|
b.iter(|| {
|
||||||
|
let mut iter = vec1
|
||||||
|
.iter()
|
||||||
|
.copied()
|
||||||
|
.enumerate()
|
||||||
|
.map(|(idx, e)| idx.wrapping_add(e))
|
||||||
|
.zip(vec2.iter().copied())
|
||||||
|
.map(|(a, b)| a.wrapping_add(b))
|
||||||
|
.fuse();
|
||||||
|
let mut acc: usize = 0;
|
||||||
|
let size = iter.size();
|
||||||
|
for i in 0..size {
|
||||||
|
// SAFETY: TRA requirements are satisfied by 0..size iteration and then dropping the
|
||||||
|
// iterator.
|
||||||
|
acc = acc.wrapping_add(unsafe { iter.__iterator_get_unchecked(i) });
|
||||||
|
}
|
||||||
|
acc
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#![feature(flt2dec)]
|
#![feature(flt2dec)]
|
||||||
#![feature(int_log)]
|
#![feature(int_log)]
|
||||||
#![feature(test)]
|
#![feature(test)]
|
||||||
|
#![feature(trusted_random_access)]
|
||||||
|
|
||||||
extern crate test;
|
extern crate test;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue