RFR [7192942] Optimizing calculation of power of 2 in HashMap
Ivan Gerasimov
ivan.gerasimov at oracle.com
Tue Jul 30 17:05:23 UTC 2013
On 30.07.2013 20:47, Aleksey Shipilev wrote:
> On 07/30/2013 07:35 PM, Ivan Gerasimov wrote:
>> I also created a benchmark test to make sure the improvement is observable.
>> Here's the jmh benchmark I used:
>> http://cr.openjdk.java.net/~igerasim/bench/powoftwo/src/main/java/org/benches/PowerOfTwoBench.java
>> <http://cr.openjdk.java.net/%7Eigerasim/bench/powoftwo/src/main/java/org/benches/PowerOfTwoBench.java>
> The nit: volatile writes are probably offset the results too much, it's
> better to use the explicit idiom to feed the values:
>
> @GenerateMicroBenchmark
> public void benchPowerOfTwoA(BlackHole bh) {
> for (i = 0; i != MAX_I; ++i) {
> bh.consume(roundUpToPowerOf2A(i));
> }
> }
Thanks, Aleksey!
Yes, this is much clearer. And shows much better improvement too :-)
Now it becomes ~45%.
Benchmark Mode Thr Cnt Sec
Mean Mean error Units
o.b.PowerOfTwoBench.benchPowerOfTwoA avgt 1 20 5
16.872 0.276 msec/op
o.b.PowerOfTwoBench.benchPowerOfTwoB avgt 1 20 5
9.304 0.378 msec/op
Sincerely yours,
Ivan
> -Aleksey.
>
>
More information about the core-libs-dev
mailing list