[Bug libstdc++/54075] [4.7.1] unordered_map insert still slower than 4.6.2

Paolo Carlini paolo.carlini@oracle.com
Thu Nov 8 02:26:00 GMT 2012


On 11/08/2012 02:56 AM, Paolo Carlini wrote:
> On the other hand, the old-old code for rehash didn't use 
> _M_growth_factor in these computations, it just literally enforced the 
> post-conditions of the Standard. Are we sure we aren't so to speak 
> rehashing too much? For example, when the load factor is very low and 
> doesn't count, it looks like a current rehash(n) accomplishes the same 
> of an old rehash(n * 2)?!? Something seems wrong, can you double check 
> that? In any case the comments before _M_next_bkt would need fixing.
... in other terms, I really think that the only uses of 
_S_growth_factor should return to be inside _M_need_rehash, because 
that's the function called by the inserts, when the container must 
automatically grow the number of buckets. Elsewhere, like the 
constructors, rehash, should not need to know about _S_growth_factor.

Paolo.



More information about the Libstdc++ mailing list