sparsepp
gtl
sparsepp | gtl | |
---|---|---|
4 | 5 | |
1,230 | 90 | |
- | - | |
1.1 | 7.1 | |
about 1 year ago | 29 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sparsepp
-
Updating map_benchmarks: Send your hashmaps!
Also, I'm testing https://github.com/greg7mdp/sparsepp which is based on google's sparsehash
-
Who here is ready to see some 64MB blocks on mainnet?
Hey thanks for the mention /u/jtoomim. I see that you used sparsepp in CoinsViewCache. A phmap::flat_hash_map would probably be similar for memory usage, but likely faster (because of parallel lookup with SSE instructions and contiguous memory storage in one array).
gtl
-
Inside boost::concurrent_flat_map
gtl library author here. Very nice writeup! Reading it made me think, and I believe I know why gtl::parallel_flat_hash_map performs comparatively worse for high-skew scenarios (just pushed a fix in gtl).
-
Boost 1.81 will have boost::unordered_flat_map...
I do this as well in my phmap and gtl implementations. It makes the tables look worse in benchmarks like the above, but prevents really bad surprises occasionally.
-
Comprehensive C++ Hashmap Benchmarks 2022
Thanks a lot for the great benchmark, Martin. Glad you used different hash functions, because I do sacrifice some speed to make sure that the performance of my hash maps doesn't degrade drastically with poor hash functions. Happy to see that my phmap and gtl (the C++20 version) performed well.
-
It is now trivial to cache pure functions with highly efficient, concurrent cache.
This is very easy to do with the latest version of gtl. And it is extremely efficient, as the caching mechanism uses the parallel hashmap, which internally is divided into N submaps each with its own mutex, reducing mutex contention to a minimum.
-
Updating map_benchmarks: Send your hashmaps!
AFAIK sparsepp has been dropped entirely in favor of the containers in GTL: https://github.com/greg7mdp/gtl
What are some alternatives?
PEGTL - Parsing Expression Grammar Template Library
eytzinger - Cache-friendly associative STL-like container with an Eytzinger (BFS) layout for C++
Inja - A Template Engine for Modern C++
fph-table - Flash Perfect Hash Table: an implementation of a dynamic perfect hash table, extremely fast for lookup
Hashmaps - Various open addressing hashmap algorithms in C++
Google Test - GoogleTest - Google Testing and Mocking Framework
LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support python and matlab.
flat_hash_map - A very fast hashtable
dynamic_bitset - Simple Useful Libraries: C++17/20 header-only dynamic bitset
google-sparsehash - Clone of google-sparsehash
Optional Argument in C++ - Named Optional Arguments in C++17
libcudacxx - [ARCHIVED] The C++ Standard Library for your entire system. See https://github.com/NVIDIA/cccl