diff --git a/benches/bench.rs b/benches/bench.rs index 7de450530f..bcf073018c 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -46,6 +46,22 @@ fn grow_by_insertion(b: &mut Bencher) { }); } +#[bench] +fn grow_by_insertion_kb(b: &mut Bencher) { + let mut m = new_map(); + let kb = 1024; + for i in 1..1001 { + m.insert(i * kb, i); + } + + let mut k = 1001 * kb; + + b.iter(|| { + m.insert(k, k); + k += kb; + }); +} + #[bench] fn find_existing(b: &mut Bencher) { let mut m = new_map(); @@ -61,6 +77,21 @@ fn find_existing(b: &mut Bencher) { }); } +#[bench] +fn find_existing_high_bits(b: &mut Bencher) { + let mut m = new_map(); + + for i in 1..1001_u64 { + m.insert(i << 32, i); + } + + b.iter(|| { + for i in 1..1001_u64 { + m.contains_key(&(i << 32)); + } + }); +} + #[bench] fn find_nonexisting(b: &mut Bencher) { let mut m = new_map(); @@ -111,3 +142,18 @@ fn get_remove_insert(b: &mut Bencher) { k += 1; }) } + +#[bench] +fn insert_8_char_string(b: &mut Bencher) { + let mut strings: Vec<_> = Vec::new(); + for i in 1..1001 { + strings.push(format!("{:x}", -i)); + } + + let mut m = new_map(); + b.iter(|| { + for key in &strings { + m.insert(key, key); + } + }) +}