X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=library%2Falloc%2Fbenches%2Fvec.rs;h=663f6b9dd1c9c038cbe3fbad3cbcb753329d27ec;hb=3b780fc2792c471c6fc1491e08d4523629ec222e;hp=efc47327e8a86d2fd89b8dec30bf076eb468750f;hpb=7372bf88ee17088023590f73fee380db97ee68e0;p=rust.git diff --git a/library/alloc/benches/vec.rs b/library/alloc/benches/vec.rs index efc47327e8a..663f6b9dd1c 100644 --- a/library/alloc/benches/vec.rs +++ b/library/alloc/benches/vec.rs @@ -762,3 +762,23 @@ fn bench_retain_whole_100000(b: &mut Bencher) { let mut v = black_box(vec![826u32; 100000]); b.iter(|| v.retain(|x| *x == 826u32)); } + +#[bench] +fn bench_next_chunk(b: &mut Bencher) { + let v = vec![13u8; 2048]; + + b.iter(|| { + const CHUNK: usize = 8; + + let mut sum = [0u32; CHUNK]; + let mut iter = black_box(v.clone()).into_iter(); + + while let Ok(chunk) = iter.next_chunk::() { + for i in 0..CHUNK { + sum[i] += chunk[i] as u32; + } + } + + sum + }) +}