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
.
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 withn
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%).
- Successful: lookup of the
gcc-x64
: GCC 12, x64clang-x64
: Clang 15, x64vs-x64
: Visual Studio 2022, x64clang-arm64
: Clang 12 ARM64gcc-x86
: GCC 12, x86clang-x86
: Clang 15, x86vs-x86
: Visual Studio 2022, x86
Running insertion.xlsx
: results ofrunning_insertion.cpp
Running erasure.xlsx
: results ofrunning_erasure.cpp
Scattered successful looukp.xlsx
: results ofscattered_lookup.cpp
, successful caseScattered unsuccessful looukp.xlsx
: results ofscattered_lookup.cpp
, unsuccessful case
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Running insertion | Running erasure | Successful lookup | Unsuccessful lookup |