Last updated 23-5-2026
Running MSVC 2026 x64 as compiler (build 14.51). Relevant build settings are standard unaltered release settings: "/GS /W3 /Gy /Zi /O2 /fp:precise /D "NDEBUG" /WX- /Gd /Oi /MD /std:c++20 /EHsc".
Full spreadsheet data is here.
For more general details and benchmark code see main page.
Click images or hover over to see results at linear scale instead



Click images or hover over to see results at linear scale instead



Click images or hover over to see results at linear scale instead



To summarize, for double on average hive is 6% slower for insert, 14% slower for erase and 3% faster for iteration.
For small structs it's 40% slower, 29% slower and 2% slower.
For large structs it's 93% faster, 22% slower and 32% faster.
Datatype is small struct (48 bytes), frame = one iteration pass over all elements in container.
Click images or hover over to see results at linear scale instead



plf::hive is 6% faster than hub on average.
Same as the previous test but here we erase/insert 1% of all elements per-frame instead of per 3600 frames, then once again increase the percentage to 5% then 10% per-frame. This simulates the use-case of continuously-changing data, for example video game bullets, decals, quadtree/octree nodes, cellular/atomic simulation or weather simulation.
Click images or hover over to see results at linear scale instead



plf::hive is 14% faster than hub on average for the 1% scenario, 4% faster for the 5% scenario, and 6% slower for the 10% scenario.
This test utilizes four instances of the same container type, each containing different element types:
For full explanation see the main colony benchmarks page.
Click images or hover over to see results at linear scale instead






Average speed increase of hive over hub is between 5% and 344%, depending on insert/erase-to-iterate ratio, but with a massive skew in the larger numbers of elements. Up to 25x faster at highest ratio and number of elements.




Hive is generally faster except for small types and high ratios of insert/erase-to-iteration. Microbenchmarks of small structs show a slightly different outlook to the 'real world' unordered modification tests, because the microbenchmarks don't show how erasure and insertion affect iteration performance over time. Where get_iterator is involved hub is much slower.
Contact: 
plf:: library and this page Copyright (c) 2026, Matthew Bentley.