diff options
| author | The8472 <git@infinite-source.de> | 2019-11-20 23:37:50 +0100 |
|---|---|---|
| committer | The8472 <git@infinite-source.de> | 2020-09-03 20:59:13 +0200 |
| commit | 8ac96e6a9832d70f9b5d43967cd2680711fa92df (patch) | |
| tree | d690050d5d42724c2a7c3e14229c053a1e25acfa | |
| parent | bb4f888a590b1fe24a386f3f40bad8537c3232a9 (diff) | |
| download | rust-8ac96e6a9832d70f9b5d43967cd2680711fa92df.tar.gz rust-8ac96e6a9832d70f9b5d43967cd2680711fa92df.zip | |
cyclic in-place reuse bench
| -rw-r--r-- | library/alloc/benches/vec.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/library/alloc/benches/vec.rs b/library/alloc/benches/vec.rs index 870bb3d1402..409bc49b031 100644 --- a/library/alloc/benches/vec.rs +++ b/library/alloc/benches/vec.rs @@ -482,6 +482,26 @@ bench_in_place![ ]; #[bench] +fn bench_in_place_recycle(b: &mut test::Bencher) { + let mut data = vec![0; 1000]; + + b.iter(|| { + let tmp = std::mem::replace(&mut data, Vec::new()); + std::mem::replace( + &mut data, + black_box( + tmp.into_iter() + .enumerate() + .map(|(idx, e)| idx.wrapping_add(e)) + .fuse() + .peekable() + .collect::<Vec<usize>>(), + ), + ); + }); +} + +#[bench] fn bench_chain_collect(b: &mut test::Bencher) { let data = black_box([0; LEN]); b.iter(|| data.iter().cloned().chain([1].iter().cloned()).collect::<Vec<_>>()); |
