martinus / robin-hood-hashing

Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20
https://gitter.im/martinus/robin-hood-hashing
MIT License
1.5k stars 142 forks source link

Idea for robin-hood-hashing V2 #151

Closed martinus closed 1 year ago

martinus commented 2 years ago
ktprime commented 2 years ago

I have a good implemention of spare hash map https://github.com/ktprime/emhash/blob/master/hash_table8.hpp it's the fastest iteration compared with other's hash map, but it's not efficient for erasion/insertion if Key/Value is large. it need 8 bytes index for each key/value pair.

bench_IterateIntegers map = emhash5 total iterate/removing time = 5.44, 11.98|1127848008

bench_IterateIntegers map = emhash8 total iterate/removing time = 0.39, 1.17

bench_IterateIntegers map = emhash7 total iterate/removing time = 1.00, 2.78

bench_IterateIntegers map = emhash6 total iterate/removing time = 1.08, 2.92

bench_IterateIntegers map = rigtorp total iterate/removing time = 5.38, 13.14

bench_IterateIntegers map = martinus flat total iterate/removing time = 3.02, 9.06

bench_IterateIntegers map = phmap flat total iterate/removing time = 3.38, 8.23

bench_IterateIntegers map = emilib3 total iterate/removing time = 1.69, 4.48

bench_IterateIntegers map = emilib2 total iterate/removing time = 1.62, 4.34

bench_IterateIntegers map = absl flat total iterate/removing time = 3.27, 8.28