Unsafe.{get,put}-X-Unaligned performance

Paul Sandoz paul.sandoz at oracle.com
Wed Mar 11 18:00:13 UTC 2015


Hi Andrew,

On Mar 11, 2015, at 6:27 PM, Andrew Haley <aph at redhat.com> wrote:

> On 03/11/2015 07:10 AM, John Rose wrote:
>>> 
>>> John: I'm waiting for an answer to my question here before I submit
>>> a webrev for approval.
>>> 
>>> http://mail.openjdk.java.net/pipermail/panama-dev/2015-March/000099.html
>> 
>> (Answered.)
> 
> http://cr.openjdk.java.net/~aph/unaligned.jdk.5/
> http://cr.openjdk.java.net/~aph/unaligned.hotspot.5/
> 
> I hope everybody is happy with this, or at least not so unhappy that
> they would want to reject it altogether.
> 

Some minor comment on the JavaDoc. 

I think it more preferable to refer to "underlying platform" or "platform" rather than "machine", at least thats the kind of language i have seen commonly used in other places.

1062      * The write will be atomic with respect to the largest power of
1063      * two that divides the GCD of the offset and the storage size.
1064      * For example, getLongUnaligned will make atomic reads of 2-, 4-,
1065      * or 8-byte storage units if the offset is zero mod 2, 4, or 8,
1066      * respectively.  There are no other guarantees of atomicity.
1067      * <p>
1068      *
1069      * @param o Java heap object in which the value resides, if any, else
1070      *        null
1071      * @param offset The offset in bytes from the start of the object
1072      * @param x the value to store
1073      * @throws RuntimeException No defined exceptions are thrown, not even
1074      *         {@link NullPointerException}
1075      * @since 1.9
1076      */
1077     public final void putLongUnaligned(Object o, long offset, long x) {

s/reads/writes.

In the example it might be worth pointing out that is for 64-bit systems?


> There is no bug ID for this yet.  John, would you like to create a bug
> database entry?  If not, I'll do so.  Then I can go for a RFR, which
> hopefully should be a shoo-in now that we've beaten this thing to
> death.  :-)
> 

We need to include some unit tests before we can push. As i said, if you like i can help you with that and also performing a JPRT run across multiple platforms.

Paul.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20150311/4f22e98c/signature.asc>


More information about the hotspot-compiler-dev mailing list