RFR 8209171 : Simplify Java implementation of Integer/Long.numberOfTrailingZeros()

Ivan Gerasimov ivan.gerasimov at oracle.com
Thu Aug 9 23:15:10 UTC 2018


Hello!

Integer.numberOfTrailingZeros() and Long.numberOfTrailingZeros() are 
intrinsified by Hotspot, so the Java implementation of these is not too 
important.
However, they still can be improved by a tiny bit :)

Could you please help review the fix?

Bug: https://bugs.openjdk.java.net/browse/JDK-8209171
Webrev: http://cr.openjdk.java.net/~igerasim/8209171/00/webrev/
Benchmark for Integer: 
http://cr.openjdk.java.net/~igerasim/8209171/00/bench/int/MyBenchmark.java
Benchmark for Long: 
http://cr.openjdk.java.net/~igerasim/8209171/00/bench/long/MyBenchmark.java

The resulting code is both smaller and faster.  It may also help to warm 
up Integer.numberOfLeadingZeros() quicker.

On average, the new Integer.numberOfTrailingZeros() has got +11% to 
performance for -client and +1% for -server.
Long.numberOfTrailingZeros() is faster on 17% for -client and +20% for 
-server.

-- 
With kind regards,
Ivan Gerasimov



More information about the core-libs-dev mailing list