about summary refs log tree commit diff
path: root/library/alloc
diff options
context:
space:
mode:
authorPaolo Barbolini <paolo.barbolini@m4ss.net>2022-06-11 22:53:46 +0200
committerPaolo Barbolini <paolo.barbolini@m4ss.net>2022-06-17 23:41:03 +0200
commitac2c21a62338f916cac8b58de808013e3eb7a9f0 (patch)
tree7d5b5123f32563fdcbf61bceadbae6cb9d6a41ab /library/alloc
parent0cb9899e780bcefb9008088c1e6d6cd5fe2593b4 (diff)
downloadrust-ac2c21a62338f916cac8b58de808013e3eb7a9f0.tar.gz
rust-ac2c21a62338f916cac8b58de808013e3eb7a9f0.zip
Add VecDeque::extend TrustedLen benchmark
Diffstat (limited to 'library/alloc')
-rw-r--r--library/alloc/benches/vec_deque.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/library/alloc/benches/vec_deque.rs b/library/alloc/benches/vec_deque.rs
index 6660380e4be..7c78561ebf1 100644
--- a/library/alloc/benches/vec_deque.rs
+++ b/library/alloc/benches/vec_deque.rs
@@ -91,3 +91,35 @@ fn bench_extend_vec(b: &mut Bencher) {
         ring.extend(black_box(input));
     });
 }
+
+#[bench]
+fn bench_extend_trustedlen(b: &mut Bencher) {
+    let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
+
+    b.iter(|| {
+        ring.clear();
+        ring.extend(black_box(0..512));
+    });
+}
+
+#[bench]
+fn bench_extend_chained_trustedlen(b: &mut Bencher) {
+    let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
+
+    b.iter(|| {
+        ring.clear();
+        ring.extend(black_box((0..256).chain(768..1024)));
+    });
+}
+
+#[bench]
+fn bench_extend_chained_bytes(b: &mut Bencher) {
+    let mut ring: VecDeque<u16> = VecDeque::with_capacity(1000);
+    let input1: &[u16] = &[128; 256];
+    let input2: &[u16] = &[255; 256];
+
+    b.iter(|| {
+        ring.clear();
+        ring.extend(black_box(input1.iter().chain(input2.iter())));
+    });
+}