Skip to content

Commit 6ad1334

Browse files
committed
add benchmark to cover in-place extend
1 parent a7a8b52 commit 6ad1334

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

library/alloc/benches/vec.rs

+14
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,20 @@ fn do_bench_extend_from_slice(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_extend_from_slice_0000_0000(b: &mut Bencher) {
241255
do_bench_extend_from_slice(b, 0, 0)

0 commit comments

Comments
 (0)