ic_stable_memory/benches/
btree_set.rs

1#[cfg(test)]
2mod btree_set_benchmark {
3    use crate::collections::btree_set::SBTreeSet;
4    use crate::{measure, stable, stable_memory_init};
5    use rand::seq::SliceRandom;
6    use rand::thread_rng;
7    use std::collections::BTreeSet;
8
9    const ITERATIONS: usize = 1_000_000;
10
11    #[test]
12    #[ignore]
13    fn body() {
14        let mut example = Vec::new();
15        for i in 0..ITERATIONS {
16            example.push(i);
17        }
18        example.shuffle(&mut thread_rng());
19
20        {
21            let mut classic_btree_set = BTreeSet::new();
22
23            measure!("Classic btree set insert", ITERATIONS, {
24                for i in 0..ITERATIONS {
25                    classic_btree_set.insert(example[i]);
26                }
27            });
28
29            measure!("Classic btree set search", ITERATIONS, {
30                for i in 0..ITERATIONS {
31                    classic_btree_set.contains(&example[i]);
32                }
33            });
34
35            measure!("Classic btree set remove", ITERATIONS, {
36                for i in 0..ITERATIONS {
37                    classic_btree_set.remove(&example[i]);
38                }
39            });
40        }
41
42        {
43            stable::clear();
44            stable_memory_init();
45
46            let mut stable_btree_map = SBTreeSet::new();
47
48            measure!("Stable btree set insert", ITERATIONS, {
49                for i in 0..ITERATIONS {
50                    stable_btree_map.insert(example[i]);
51                }
52            });
53
54            measure!("Stable btree set search", ITERATIONS, {
55                for i in 0..ITERATIONS {
56                    stable_btree_map.contains(&example[i]);
57                }
58            });
59
60            measure!("Stable btree set remove", ITERATIONS, {
61                for i in 0..ITERATIONS {
62                    stable_btree_map.remove(&example[i]);
63                }
64            });
65        }
66    }
67}