Unsafe.{get,put}-X-Unaligned; Efficient array comparison intrinsics (original) (raw)

John Rose john.r.rose at oracle.com
Sun Mar 8 21:28:04 UTC 2015


On Mar 7, 2015, at 11:24 AM, Remi Forax <forax at univ-mlv.fr> wrote:

On 03/07/2015 07:48 PM, Andrew Haley wrote: On 03/07/2015 05:57 PM, Remi Forax wrote: Hi Andrew, I've just read carefully the JDK part and I'm mostly ok with it.

in Unsafe, all private methods should be static You're going to have to explain that. Firstly, why? There's no real performance advantage, and secondly, how is a static method supposed to invoke the virtual methods in Unsafe? I suppose it could use theUnsafe.blah() but that would be worse than a simple virtual call. I mean all private methods that doesn't starts with "put*", convEndian, toUnsignedInt/toUnsignedLong, pick, make*, pickPos.

It's a small point but I agree with this. Leaving out "static" makes it harder to understand the roles of the relevant methods. Scrutable code is better code.

It almost never matters, but there is also a slight effect on the code pipeline: passing 'this' as an argument slightly increases the complexity of the methods.

— John



More information about the hotspot-compiler-dev mailing list