mirror of
https://github.com/martinus/unordered_dense.git
synced 2026-01-18 17:21:27 +01:00
This new underlying container has a much smoother memory allocation curve than the default underlying `std::vector`. * Much smoother memory usage, memory usage increases continuously. * No high peak memory usage. * Faster insertion because elements never need to be moved to new allocated blocks * Slightly slower indexing compared to `std::vector` because an additional indirection is needed. Abseil is fastest for this simple inserting test, taking a bit over 0.8 seconds. It's peak memory usage is about 430 MB. Note how the memory usage goes down after the last peak; when it goes down to ~290MB it has finished rehashing and could free the previously used memory block. `ankerl::unordered_dense::segmented_map` doesn't have these peaks, and instead has a smooth increase of memory usage. Note there are still sudden drops & increases in memory because the indexing data structure needs still needs to increase by a fixed factor. But due to holding the data in a separate container we are able to first free the old data structure, and then allocate a new, bigger indexing structure; thus we do not have peaks. bump to 4.0.0