boost::unordered_(flat|node)_map benchmarks
Automated benchmarks of boost::unordered_flat_map and boost::unordered_node_map against absl::flat_hash_map, absl::node_hash_map and boost::unordered_map.
Benchmarks
running_insertion.cpp: insertion of n random entries into a map of (uint64_t, uint64_t) pairs, n ranging from 10,000 to 10M.
running_erasure.cpp: traversal of a map with n elements filled as before and erasure of entries with odd key (50% on average).
scattered_lookup.cpp
- Successful: lookup of the
n keys of the container in the same order as inserted.
- Unsuccesful: lookup of
n random keys not related to those inserted (and thus not present in the container with probabilty ~100%).
How to read the results
Folder
gcc-x64: GCC 12, x64
clang-x64: Clang 15, x64
vs-x64: Visual Studio 2022, x64
clang-arm64: Clang 12 ARM64
gcc-x86: GCC 12, x86
clang-x86: Clang 15, x86
vs-x86: Visual Studio 2022, x86
Excel file
Running insertion.xlsx: results of running_insertion.cpp
Running erasure.xlsx: results of running_erasure.cpp
Scattered successful looukp.xlsx: results of scattered_lookup.cpp, successful case
Scattered unsuccessful looukp.xlsx: results of scattered_lookup.cpp, unsuccessful case
Graphs
GCC 12, x64
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
Clang 15, x64
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
Visual Studio 2022, x64
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
Clang 12, ARM64
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
GCC 12, x86
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
Clang 15, x86
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |
Visual Studio 2022, x86
![]() |
![]() |
![]() |
![]() |
| Running insertion |
Running erasure |
Successful lookup |
Unsuccessful lookup |