Skip to content

Commit ce1e584

Browse files
committed
Add additional benchmarks.
1 parent d40f49e commit ce1e584

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

benches/bench.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,22 @@ fn grow_by_insertion(b: &mut Bencher) {
4848
});
4949
}
5050

51+
#[bench]
52+
fn grow_by_insertion_kb(b: &mut Bencher) {
53+
let mut m = new_map();
54+
let kb = 1024;
55+
for i in 1..1001 {
56+
m.insert(i * kb, i);
57+
}
58+
59+
let mut k = 1001 * kb;
60+
61+
b.iter(|| {
62+
m.insert(k, k);
63+
k += kb;
64+
});
65+
}
66+
5167
#[bench]
5268
fn find_existing(b: &mut Bencher) {
5369
let mut m = new_map();
@@ -63,6 +79,21 @@ fn find_existing(b: &mut Bencher) {
6379
});
6480
}
6581

82+
#[bench]
83+
fn find_existing_high_bits(b: &mut Bencher) {
84+
let mut m = new_map();
85+
86+
for i in 1..1001_u64 {
87+
m.insert(i << 32, i);
88+
}
89+
90+
b.iter(|| {
91+
for i in 1..1001_u64 {
92+
m.contains_key(&(i << 32));
93+
}
94+
});
95+
}
96+
6697
#[bench]
6798
fn find_nonexisting(b: &mut Bencher) {
6899
let mut m = new_map();
@@ -113,3 +144,20 @@ fn get_remove_insert(b: &mut Bencher) {
113144
k += 1;
114145
})
115146
}
147+
148+
#[bench]
149+
fn insert_8_char_string(b: &mut Bencher) {
150+
let mut strings: Vec<_> = Vec::new();
151+
for i in 1..1001 {
152+
strings.push(format!("{:x}", -i));
153+
}
154+
155+
156+
let mut m = new_map();
157+
b.iter(|| {
158+
for key in &strings {
159+
m.insert(key, key);
160+
}
161+
})
162+
163+
}

0 commit comments

Comments
 (0)