diff options
| author | The8472 <git@infinite-source.de> | 2020-01-25 20:08:46 +0100 |
|---|---|---|
| committer | The8472 <git@infinite-source.de> | 2020-09-03 20:59:28 +0200 |
| commit | 6ad133443a7975b2e86a3bbba16da33c769eeabc (patch) | |
| tree | 1050dba10459da9d491496f57cc16e1d5f32a2d9 | |
| parent | a7a8b52e918500a36b48f0b123b20fd53a159403 (diff) | |
| download | rust-6ad133443a7975b2e86a3bbba16da33c769eeabc.tar.gz rust-6ad133443a7975b2e86a3bbba16da33c769eeabc.zip | |
add benchmark to cover in-place extend
| -rw-r--r-- | library/alloc/benches/vec.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/library/alloc/benches/vec.rs b/library/alloc/benches/vec.rs index 39f67c664d4..1019503a841 100644 --- a/library/alloc/benches/vec.rs +++ b/library/alloc/benches/vec.rs @@ -237,6 +237,20 @@ fn do_bench_extend_from_slice(b: &mut Bencher, dst_len: usize, src_len: usize) { } #[bench] +fn bench_extend_recycle(b: &mut Bencher) { + let mut data = vec![0; 1000]; + + b.iter(|| { + let tmp = std::mem::replace(&mut data, Vec::new()); + let mut to_extend = black_box(Vec::new()); + to_extend.extend(tmp.into_iter()); + std::mem::replace(&mut data, black_box(to_extend)); + }); + + black_box(data); +} + +#[bench] fn bench_extend_from_slice_0000_0000(b: &mut Bencher) { do_bench_extend_from_slice(b, 0, 0) } |
