Improving the performance of OpenJDK

Andrew Haley aph at redhat.com
Thu Feb 19 08:47:55 PST 2009


Gary Benson wrote:
> Gary Benson wrote:
>> Gary Benson wrote:
>> ...
>>>>>> Edward Nevill wrote:
>>>>>>> get_native_u2() and get_Java_u2() ... This seems to be a
>>>>>>> misguided attempt of the original authors to optimised
>>>>>>> reading of halfwords (judging by the comment immediate
>>>>>>> preceding the code).
>> ...
>>> So I did a quick SPECjvm98 run of this change on amd64.  A couple
>>> of the times are improved, by 3-10%, but one of the times is
>>> *slower* by 11%.  See attached.  I'm not sure what to make of
>>> that...
>> I'm wondering if rewriting get_Java_u2() to read directly rather
>> than read and swap is speeding it up, but removing the optimization
>> from get_native_u2() is slowing it down.  I'm going to try this with
>> the original get_native_u2() and with get_Java_u2() just a copy of
>> the big-endian get_native_u2().
> 
> So this way around it's a little more encouraging; two of the times
> are 8-10% faster, one is 5% faster.  Some of the times are still
> slower though, though not by as much, maybe 1-2%.  It's still
> disturbingly ambiguous though... thoughts?

Big test runs like SPECjvm98 are too coarse for this kind of thing.

It's petty unbelievable that with the original get_native_u2() and
the new, definitely faster, get_Java_u2() anything can actually
get slower.  I'd bet you're looking at noise.  1-2% is vey
hard to measure reliably on a multi-user system.

Andrew.



More information about the zero-dev mailing list