Tim Ellison wrote: > Jimmy,Jing Lv wrote: >> I'm not strongly against this commit, but just as I explained in >> the first mail, to make the numBuckets a power of two (&(bucketsize - >> 1)) is always good, but the simple right shift (>>2) may cause some >> benchmark improved (properly in these benchmarks hashcode is directly >> identityHashCode) while others are reduced (hashcode are >> user-defined). A known reduced benchmark is specjbb. >> I don't know when will vm improve their hashcode implementation, >> and different vms will re-act to this at different time, so I doubt >> the best way for applying simply shift ( >>2 ) is waiting for vm to >> improve themselves and do no change to classlib. However this is not a >> very urgent issue :) > > Ok, how about we flip it around then. I'll modify the code to compute > > int bucket = hashCode & (numBuckets - 1); > > with the understanding that our current VMs are penalized until they > enhance their identityHashCode implementations? > > Anyone object to doing it this way around?
FYI: there being no objections, I committed the code at repo revision r554615. Regards, Tim
