Discover and explore top open-source AI tools and projects—updated daily.
C++ benchmark suite for hash map implementations
Top 86.1% on SourcePulse
This project provides comprehensive benchmarks for C++ unordered map implementations, targeting developers and researchers who need to evaluate the performance of different hash table designs. It aims to offer a standardized and reproducible way to compare map performance across various workloads.
How It Works
The benchmark suite is structured to easily integrate new map and hash implementations. New maps are added as git submodules in the external
directory, with their C++ interface defined in src/maps/<map_name>/Map.h
. Similarly, hash functions are defined in src/hashes/<hash_name>/Hash.h
. This modular design allows for straightforward comparison of different data structures and hashing algorithms.
Quick Start & Requirements
folly
(see Folly Ubuntu installation), ninja
, cmake
.git clone --recurse-submodules https://github.com/martinus/map_benchmark.git
./map_benchmark/tools/build.sh
sudo python3 -m perf system tune
../tools/bench.rb |tee ../data/all_new.txt
perf
and CPU isolation configuration.Highlighted Details
robin_hood::unordered_flat_map
.Maintenance & Community
The project is maintained by martinus. No specific community channels or roadmap are detailed in the README.
Licensing & Compatibility
The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.
Limitations & Caveats
Some map implementations, like QHash
and rigtorp::HashMap
, could not be easily integrated due to interface differences or missing default constructors. Achieving reliable benchmarks requires careful CPU isolation and system tuning.
2 years ago
Inactive