Edit 2023-01-12: See comments! Test is flawed - it will never add more than 7 elements to the HashMap
. I've left the original results here unedited.
Test results on an Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
CPU:
$ cargo bench
Compiling bench_test v0.1.0 (file:///home/daboross/bench_test)
Finished release [optimized] target(s) in 2.99 secs
Running target/release/deps/bench_test-6b454ea06156805a
running 6 tests
test tests::bench_10_item_hash_map ... bench: 35 ns/iter (+/- 4)
test tests::bench_10_item_vec ... bench: 29 ns/iter (+/- 2)
test tests::bench_20_item_hash_map ... bench: 33 ns/iter (+/- 1)
test tests::bench_20_item_vec ... bench: 51 ns/iter (+/- 6)
test tests::bench_50_item_hash_map ... bench: 35 ns/iter (+/- 2)
test tests::bench_50_item_vec ... bench: 129 ns/iter (+/- 1)
test result: ok. 0 passed; 0 failed; 0 ignored; 6 measured
Conclusion: Vec is best when there are 15 or fewer items, HashMap is better when there are more than 15.
It would be interesting to see how well
AHashMap
scores. (I tried to test it myself, but quickly ran into errors I couldn't fix.)