mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			926 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			926 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::{collections::VecDeque, time::Instant};
 | |
| 
 | |
| const VECDEQUE_LEN: i32 = 100000;
 | |
| const WARMUP_N: usize = 100;
 | |
| const BENCH_N: usize = 1000;
 | |
| 
 | |
| fn main() {
 | |
|     let a: VecDeque<i32> = (0..VECDEQUE_LEN).collect();
 | |
|     let b: VecDeque<i32> = (0..VECDEQUE_LEN).collect();
 | |
| 
 | |
|     for _ in 0..WARMUP_N {
 | |
|         let mut c = a.clone();
 | |
|         let mut d = b.clone();
 | |
|         c.append(&mut d);
 | |
|     }
 | |
| 
 | |
|     let mut durations = Vec::with_capacity(BENCH_N);
 | |
| 
 | |
|     for _ in 0..BENCH_N {
 | |
|         let mut c = a.clone();
 | |
|         let mut d = b.clone();
 | |
|         let before = Instant::now();
 | |
|         c.append(&mut d);
 | |
|         let after = Instant::now();
 | |
|         durations.push(after.duration_since(before));
 | |
|     }
 | |
| 
 | |
|     let l = durations.len();
 | |
|     durations.sort();
 | |
| 
 | |
|     assert!(BENCH_N % 2 == 0);
 | |
|     let median = (durations[(l / 2) - 1] + durations[l / 2]) / 2;
 | |
|     println!("\ncustom-bench vec_deque_append {:?} ns/iter\n", median.as_nanos());
 | |
| }
 | 
