Created
March 11, 2025 23:06
-
-
Save jweinst1/f5d84c13232f31f6facaef91e597a55d to your computer and use it in GitHub Desktop.
hash map rust bench
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::collections::HashMap; | |
fn add_rand_strings(keys:&mut Vec<String>, amnt:usize, l:usize) { | |
const CHARSET: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; | |
let mut rnd = 548324; | |
for i in 0..amnt { | |
let mut s = String::new(); | |
for j in 0..l { | |
rnd = i ^ rnd + j * 5; | |
s.push(CHARSET[rnd % CHARSET.len()] as char); | |
} | |
keys.push(s); | |
} | |
} | |
fn my_function_to_measure(keys:Vec<String>, to_insert:&mut HashMap<String, String>) { | |
for key in keys { | |
to_insert.insert(key, "foobar".to_string()); | |
} | |
} | |
fn main() { | |
use std::time::Instant; | |
let now = Instant::now(); | |
let mut my_vec = Vec::new(); | |
let mut my_map = HashMap::new(); | |
add_rand_strings(&mut my_vec, 400000, 20); | |
// Code block to measure. | |
{ | |
my_function_to_measure(my_vec, &mut my_map); | |
} | |
let elapsed = now.elapsed(); | |
println!("Elapsed: {:.2?}", elapsed); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment