Improving the performance of OpenJDK
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
>> 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.
More information about the zero-dev