-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
a good design #1
Comments
Interesting hash map implemantion. I shall try to add your hash table to the bench recently. I'm thinking of using a dedicated web page to show the benchmark results and plots because there's so much data to display. By the way, your hash table has several variants. Which one do you want to add? I can't add too many hashtables because there are already many in the comparison now. Too many comparison objects can make the chart look too cluttered. |
use the follow twos. I collect many third-payty flat hash-map implementions and benchmarsks, you can make and test it. |
@ktprime Hi, I tired to add the two hash tables you metioned, but encountered some problems. |
@renzibei your benchmark is some like martinus's code and more better. |
@ktprime |
add "ADD_DEFINITIONS(-EMH_BUCKET_INDEX=2)" in cmakelist.txt #pragma once
|
Got it. From some early stage tests, it seems that |
Performance depends on cpu/compiler/test case/hash/data, emilib2 migrats from absl::flat_hash_map with some optimization, in my owner benchmark it's fast than absl and emhash7 on average. emhash7 can set high load factor (0.999) without extreme performance deterioration |
Yeah they are good at different datasets. In general the performance of emilib2 is similar to Here are the two figures comparing these three hash maps. The first is the finding success case and the second is the finding miss case. |
emhash focus optimization on find_hit/insertion/iteration/copy/clear performance. emhash6/emhash5 is faster on finding hit than emhash7. |
Thank you for sharing this. Considering that fph-table uses a seed hash function, if we want to add the fph-table to that map_benchmarks, we need to either create a version of fph-table taking no-seed hash function or make some changes to the map_benchmarks to make it support the seed hash functions. |
can you add my emhash into your benchmark ?
https://github.com/ktprime/emhash/blob/master/hash_table7.hpp
https://github.com/ktprime/emhash/blob/master/hash_table8.hpp
https://github.com/ktprime/emhash/blob/master/thirdparty/emilib/emilib2.hpp
I have add your hashmap into my bench
https://github.com/ktprime/emhash/blob/master/bench/ebench.cpp
https://github.com/ktprime/emhash/blob/master/bench/qbench.cpp
https://github.com/ktprime/emhash/blob/master/bench/martin_bench.cpp
....
The text was updated successfully, but these errors were encountered: