Instead of representing the map as vector or linked lists which required an allocation for every insertion and deallocation for removal, we now store a single big contiguous block of memory and use hash chains to handle collisions. This intuitively feels much better although I did not run any benchmarks.