]> git.proxmox.com Git - rustc.git/blob - src/liballoc/benches/vec_deque.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / liballoc / benches / vec_deque.rs
1 use std::collections::VecDeque;
2 use test::{black_box, Bencher};
3
4 #[bench]
5 fn bench_new(b: &mut Bencher) {
6 b.iter(|| {
7 let ring: VecDeque<i32> = VecDeque::new();
8 black_box(ring);
9 })
10 }
11
12 #[bench]
13 fn bench_grow_1025(b: &mut Bencher) {
14 b.iter(|| {
15 let mut deq = VecDeque::new();
16 for i in 0..1025 {
17 deq.push_front(i);
18 }
19 black_box(deq);
20 })
21 }
22
23 #[bench]
24 fn bench_iter_1000(b: &mut Bencher) {
25 let ring: VecDeque<_> = (0..1000).collect();
26
27 b.iter(|| {
28 let mut sum = 0;
29 for &i in &ring {
30 sum += i;
31 }
32 black_box(sum);
33 })
34 }
35
36 #[bench]
37 fn bench_mut_iter_1000(b: &mut Bencher) {
38 let mut ring: VecDeque<_> = (0..1000).collect();
39
40 b.iter(|| {
41 let mut sum = 0;
42 for i in &mut ring {
43 sum += *i;
44 }
45 black_box(sum);
46 })
47 }
48
49 #[bench]
50 fn bench_try_fold(b: &mut Bencher) {
51 let ring: VecDeque<_> = (0..1000).collect();
52
53 b.iter(|| black_box(ring.iter().try_fold(0, |a, b| Some(a + b))))
54 }