Skip to content

Commit ac2c21a

Browse files
Add VecDeque::extend TrustedLen benchmark
1 parent 0cb9899 commit ac2c21a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

library/alloc/benches/vec_deque.rs

+32
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,35 @@ fn bench_extend_vec(b: &mut Bencher) {
9191
ring.extend(black_box(input));
9292
});
9393
}
94+
95+
#[bench]
96+
fn bench_extend_trustedlen(b: &mut Bencher) {
97+
let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
98+
99+
b.iter(|| {
100+
ring.clear();
101+
ring.extend(black_box(0..512));
102+
});
103+
}
104+
105+
#[bench]
106+
fn bench_extend_chained_trustedlen(b: &mut Bencher) {
107+
let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
108+
109+
b.iter(|| {
110+
ring.clear();
111+
ring.extend(black_box((0..256).chain(768..1024)));
112+
});
113+
}
114+
115+
#[bench]
116+
fn bench_extend_chained_bytes(b: &mut Bencher) {
117+
let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
118+
let input1: &[u16] = &[128; 256];
119+
let input2: &[u16] = &[255; 256];
120+
121+
b.iter(|| {
122+
ring.clear();
123+
ring.extend(black_box(input1.iter().chain(input2.iter())));
124+
});
125+
}

0 commit comments

Comments
 (0)