RFR: [6904367]: (coll) IdentityHashMap is resized before exceeding the expected maximum size (original) (raw)

Peter Levart peter.levart at gmail.com
Sat Jul 12 19:20:06 UTC 2014


On 07/12/2014 08:12 PM, Peter Levart wrote:

(3 * size < 2 * highestOneBit(3size)) is true for any size, so IHM_ will never be resized if filled with size elements and table was preallocated with length = 2 * highestOneBit(3*size) even if condition for resizing is changed _from (3*size > length) to (3size >= length). Current condition sometimes resizes a little to late when preallocation would already create a bigger table.

May latest statement is of course false. If length is a power of two, then it can never be equal 3*size. For power of two lengths, both conditions are equivalent. But for my purpose the >= is better...

Peter



More information about the core-libs-dev mailing list