Skip to content

Commit 96cbc9d

Browse files
committed
add benchmark to cover in-place extend
1 parent aaa16a0 commit 96cbc9d

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/liballoc/benches/vec.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,20 @@ fn do_bench_push_all(b: &mut Bencher, dst_len: usize, src_len: usize) {
236236
});
237237
}
238238

239+
#[bench]
240+
fn bench_extend_recycle(b: &mut Bencher) {
241+
let mut data = vec![0; 1000];
242+
243+
b.iter(|| {
244+
let tmp = std::mem::replace(&mut data, Vec::new());
245+
let mut to_extend = black_box(Vec::new());
246+
to_extend.extend(tmp.into_iter());
247+
std::mem::replace(&mut data, black_box(to_extend));
248+
});
249+
250+
black_box(data);
251+
}
252+
239253
#[bench]
240254
fn bench_push_all_0000_0000(b: &mut Bencher) {
241255
do_bench_push_all(b, 0, 0)

0 commit comments

Comments
 (0)