http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54075
--- Comment #30 from François Dumont <fdumont at gcc dot gnu.org> 2012-10-24 19:27:58 UTC --- I am going to take a look to 4.4 implementation to see if I can explain the difference. But waiting for that can you confirm that without the reserve the number of rehash is similar to what you had with version 4.4. Regarding the resident memory, I can't remember any overhead with the new implementation but once again checking 4.4 implementation will point me to it. Do you have it with the code originally posted, that is to say an unordered_map<int, int> ? For information the major reason to review the implementation was for Standard conformity. The erase method had to return the iterator following the erased one.