RFR: 8311207: Cleanup for Optimization for UUID.toString [v6]
ExE Boss
duke at openjdk.org
Sun Jul 9 16:40:07 UTC 2023
On Fri, 7 Jul 2023 23:42:51 GMT, 温绍锦 <duke at openjdk.org> wrote:
>> src/java.base/share/classes/java/util/UUID.java line 475:
>>
>>> 473: long msb = mostSigBits;
>>> 474: byte[] buf = new byte[36];
>>> 475: UNSAFE.putLongUnaligned(
>>
>> I understood that since UUID was not used during startup, that using VarHandles is the preferred abstraction.
>
> Using VarHandle will be 10% slower than using Unsafe directly, I haven't found the reason yet
I believe it’s because `VarHandle`s do bounds checking:
https://github.com/openjdk/jdk/blob/581f90e242b8a943215a223189d171b7ede37785/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template#L113-L116 https://github.com/openjdk/jdk/blob/581f90e242b8a943215a223189d171b7ede37785/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template#L144-L161
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14745#discussion_r1257510755
More information about the core-libs-dev
mailing list