From 20e14e4030744a3dc0e9bfc8ad2f17000ed748ce Mon Sep 17 00:00:00 2001 From: TennyZhuang Date: Mon, 16 Aug 2021 09:51:10 +0800 Subject: [PATCH] Add benchmark for Vec::retain --- library/alloc/benches/vec.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/library/alloc/benches/vec.rs b/library/alloc/benches/vec.rs index c93a493cadb..8e1d374b5d4 100644 --- a/library/alloc/benches/vec.rs +++ b/library/alloc/benches/vec.rs @@ -732,3 +732,18 @@ fn bench_flat_map_collect(b: &mut Bencher) { let v = vec![777u32; 500000]; b.iter(|| v.iter().flat_map(|color| color.rotate_left(8).to_be_bytes()).collect::>()); } + +#[bench] +fn bench_retain_100000(b: &mut Bencher) { + let v = (1..=100000).collect::>(); + b.iter(|| { + let mut v = v.clone(); + v.retain(|x| x & 1 == 0) + }); +} + +#[bench] +fn bench_retain_whole_100000(b: &mut Bencher) { + let mut v = black_box(vec![826u32; 100000]); + b.iter(|| v.retain(|x| *x == 826u32)); +}