Skip to content

Commit 6a6885c

Browse files
committed
add benchmark for BTreeMap::from_iter
1 parent 5eacec9 commit 6a6885c

File tree

1 file changed

+50
-0
lines changed
  • library/alloc/benches/btree

1 file changed

+50
-0
lines changed

library/alloc/benches/btree/map.rs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,50 @@ macro_rules! map_insert_seq_bench {
5454
};
5555
}
5656

57+
macro_rules! map_from_iter_rand_bench {
58+
($name: ident, $n: expr, $map: ident) => {
59+
#[bench]
60+
pub fn $name(b: &mut Bencher) {
61+
let n: usize = $n;
62+
// setup
63+
let mut rng = thread_rng();
64+
let mut vec = Vec::with_capacity(n);
65+
66+
for _ in 0..n {
67+
let i = rng.gen::<usize>() % n;
68+
vec.push((i, i));
69+
}
70+
71+
// measure
72+
b.iter(|| {
73+
let map: $map<_, _> = vec.iter().copied().collect();
74+
black_box(map);
75+
});
76+
}
77+
};
78+
}
79+
80+
macro_rules! map_from_iter_seq_bench {
81+
($name: ident, $n: expr, $map: ident) => {
82+
#[bench]
83+
pub fn $name(b: &mut Bencher) {
84+
let n: usize = $n;
85+
// setup
86+
let mut vec = Vec::with_capacity(n);
87+
88+
for i in 0..n {
89+
vec.push((i, i));
90+
}
91+
92+
// measure
93+
b.iter(|| {
94+
let map: $map<_, _> = vec.iter().copied().collect();
95+
black_box(map);
96+
});
97+
}
98+
};
99+
}
100+
57101
macro_rules! map_find_rand_bench {
58102
($name: ident, $n: expr, $map: ident) => {
59103
#[bench]
@@ -111,6 +155,12 @@ map_insert_rand_bench! {insert_rand_10_000, 10_000, BTreeMap}
111155
map_insert_seq_bench! {insert_seq_100, 100, BTreeMap}
112156
map_insert_seq_bench! {insert_seq_10_000, 10_000, BTreeMap}
113157

158+
map_from_iter_rand_bench! {from_iter_rand_100, 100, BTreeMap}
159+
map_from_iter_rand_bench! {from_iter_rand_10_000, 10_000, BTreeMap}
160+
161+
map_from_iter_seq_bench! {from_iter_seq_100, 100, BTreeMap}
162+
map_from_iter_seq_bench! {from_iter_seq_10_000, 10_000, BTreeMap}
163+
114164
map_find_rand_bench! {find_rand_100, 100, BTreeMap}
115165
map_find_rand_bench! {find_rand_10_000, 10_000, BTreeMap}
116166

0 commit comments

Comments
 (0)