RFR 8203279 : Faster calculation of power of two
Ivan Gerasimov
ivan.gerasimov at oracle.com
Thu May 17 03:01:27 UTC 2018
On 5/16/18 7:44 PM, David Holmes wrote:
> On 17/05/2018 12:30 PM, Ivan Gerasimov wrote:
>> Hi David!
>>
>>
>> On 5/16/18 6:12 PM, David Holmes wrote:
>>> Hi Ivan,
>>>
>>> Surely you need to back this up with some performance numbers! And
>>> verify not assume that numberOfLeadingZeroes is intrinsified!
>>>
>> Yes, good point.
>> Please find the benchmark with the results here:
>> http://cr.openjdk.java.net/~igerasim/8203279/00/MyBenchmark.java
>>
>> It shows that the new version of HashMap. tableSizeFor() was
>> (approximately) two times faster.
>
> Impressive. :)
>
Thanks :)
Of course it's not performance critical code, but why not optimize it by
a tiny bit if possible?
Do you think it's good to go?
With kind regards,
Ivan
> Thanks,
> David
>
>> With kind regards,
>> Ivan
>>
>>> Cheers,
>>> David
>>>
>>> On 17/05/2018 10:32 AM, Ivan Gerasimov wrote:
>>>> Hello!
>>>>
>>>> In a few places we have code that rounds an integer up to the
>>>> nearest power of two.
>>>>
>>>> It is done with a series of RSHOTFs and ORs, but it can possibly be
>>>> done faster with the use of Integer.numberOfLeadingZeros (assuming
>>>> it is intrinsified).
>>>>
>>>> Would you please help review this trivial optimization:
>>>>
>>>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8203279
>>>> WEBREV: http://cr.openjdk.java.net/~igerasim/8203279/00/webrev/
>>>>
>>>> For HashMap.tableSizeFor() I created a simple test with a loop from
>>>> Integer.MIN_VALUE to Integer.MAX_VALUE (including), to make sure
>>>> the result is the same.
>>>>
>>>> For TimSort.ensureCapacity() I checked all positive values of
>>>> minCapacity.
>>>>
>>>
>>
>
--
With kind regards,
Ivan Gerasimov
More information about the core-libs-dev
mailing list