]> git.lizzy.rs Git - rust.git/blob - library/alloc/benches/vec_deque_append.rs
Auto merge of #107080 - Urgau:cleanup-bootstrap-extra-check-cfgs, r=Mark-Simulacrum
[rust.git] / library / alloc / benches / vec_deque_append.rs
1 use std::{collections::VecDeque, time::Instant};
2
3 const VECDEQUE_LEN: i32 = 100000;
4 const WARMUP_N: usize = 100;
5 const BENCH_N: usize = 1000;
6
7 fn main() {
8     let a: VecDeque<i32> = (0..VECDEQUE_LEN).collect();
9     let b: VecDeque<i32> = (0..VECDEQUE_LEN).collect();
10
11     for _ in 0..WARMUP_N {
12         let mut c = a.clone();
13         let mut d = b.clone();
14         c.append(&mut d);
15     }
16
17     let mut durations = Vec::with_capacity(BENCH_N);
18
19     for _ in 0..BENCH_N {
20         let mut c = a.clone();
21         let mut d = b.clone();
22         let before = Instant::now();
23         c.append(&mut d);
24         let after = Instant::now();
25         durations.push(after.duration_since(before));
26     }
27
28     let l = durations.len();
29     durations.sort();
30
31     assert!(BENCH_N % 2 == 0);
32     let median = (durations[(l / 2) - 1] + durations[l / 2]) / 2;
33     println!("\ncustom-bench vec_deque_append {:?} ns/iter\n", median.as_nanos());
34 }