rigtorp/HashMap is tracked by TopGit as an open-source project, with 224 stars on GitHub, written primarily in C++. An open addressing linear probing hash table, tuned for delete heavy workloads
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
A hash table mostly compatible with the C++11 std::unordered_map
interface, but with much higher performance for many workloads.
Implementation
This hash table uses open addressing with linear probing and
backshift deletion. Open addressing and linear probing minimizes
memory allocations and achieves high cache efficiency. Backshift deletion
keeps performance high for delete heavy workloads by not clobbering
the hash table with tombestones.
Usage
HashMap is mostly compatible with the C++11 container interface. The
main differences are:
A key value to represent the empty key is required.
Key and T needs to be default constructible.
Iterators are invalidated on all modifying operations.
It's invalid to perform any operations with the empty key.
The same target is available after add_subdirectory(path/to/HashMap).
Installation respects CMAKE_INSTALL_INCLUDEDIR and CMAKE_INSTALL_LIBDIR.
Benchmark
A benchmark src/HashMapBenchmark.cpp is included with the sources. The
benchmark simulates a delete heavy workload where items are repeatedly inserted
and deleted.
The benchmark uses std::chrono::steady_clock and requires no benchmark
framework or vendored dependencies. CMake enables comparisons against installed
Abseil and sparsehash when found. Set HASHMAP_BENCHMARK_WITH_ABSL=OFF or
HASHMAP_BENCHMARK_WITH_SPARSEHASH=OFF to disable either comparison. Abseil must
provide its CMake package; sparsehash must provide google/dense_hash_map.
No dependencies are downloaded during configuration.
The benchmark is built on Linux and macOS; Windows builds the example and tests.
All containers in a run use the same hash: hardware CRC32 on x86-64 and
MurmurHash3's fmix64 integer mixer on ARM and other architectures. Hash choices
differ across architectures, so compare containers within the same run.
I ran this benchmark on the following configuration:
AMD Ryzen 9 3900X
Linux 5.8.4-200.fc32.x86_64
gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1)
Isolated a core complex (CCX) using isolcpus for running the benchmark
When working set fits in L3 cache (HashMapBenchmark -c 100000 -i 100000000):
Implementation
mean ns/iter
max ns/iter
HashMap
24
1082
absl::flat_hash_map
24
2074
google::dense_hash_map
49
689846
std::unordered_map
67
10299
When working set is larger than L3 cache (HashMapBenchmark -c 10000000 -i 1000000000):
No homepage URL was recorded for rigtorp/HashMap in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
Is rigtorp/HashMap open source?
Yes — rigtorp/HashMap ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/rigtorp/HashMap.
What is rigtorp/HashMap?
rigtorp/HashMap (rigtorp/HashMap) is a C++ project on GitHub. From the project's own README: An open addressing linear probing hash table, tuned for delete heavy workloads
What license does rigtorp/HashMap use?
rigtorp/HashMap is released under the MIT license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
Where do I read more about rigtorp/HashMap?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/rigtorp/HashMap is the definitive source.
Read full README in the tab above.
Curious whether HashMap is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about HashMap.