RFR: 8310502 : optimization for UUID#toString [v4]

ExE Boss duke at openjdk.org
Wed Jun 21 19:06:06 UTC 2023


On Wed, 21 Jun 2023 14:53:22 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> 温绍锦 has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   add annotation Stable
>
> src/java.base/share/classes/java/lang/Long.java line 563:
> 
>> 561:             StringUTF16.putChar(buf, 7, (byte) i3);
>> 562:             StringUTF16.putChar(buf, 8, '-');
>> 563:             StringUTF16.putChar(buf, 9, (byte) (i4 >> 8));
> 
> This might be cheating but you could avoid a store of 0 to the high byte (its already zero) by inlining the code from StringUTF16.putChar();  just double the index on the store of the byte.
> 
>             buf[0] = (byte) (i0 >> 8);
>             buf[2] = (byte) i0;
>             buf[4] = (byte) (i1 >> 8);
>             buf[6] = (byte) i1;
>             buf[8] = (byte) (i2 >> 8);
> ...

Note that `StringUTF16::putChar` takes endian‑ness into account, so the above code would only be correct on half of the supported endian types.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14578#discussion_r1237483291


More information about the core-libs-dev mailing list