RFR: JDK-8310502 : Optimization for j.l.Long.fastUUID() [v14]

Chen Liang liach at openjdk.org
Thu Jun 22 13:10:09 UTC 2023


On Thu, 22 Jun 2023 12:18:21 GMT, ExE Boss <duke at openjdk.org> wrote:

>> 温绍锦 has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   use ByteArray.setInt & setLong
>
> src/java.base/share/classes/java/lang/Long.java line 527:
> 
>> 525:         buf[70 + off] = (byte) i15;
>> 526: 
>> 527:         return new String(buf, UTF16);
> 
> Maybe restore the `else` block?
> Suggestion:
> 
>         } else {
>             byte[] buf = new byte[72];
>             int off = ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? 1 : 0;
> 
>             buf[0 + off] = (byte) (i0 >> 8);
>             buf[2 + off] = (byte) i0;
>             buf[4 + off] = (byte) (i1 >> 8);
>             buf[6 + off] = (byte) i1;
>             buf[8 + off] = (byte) (i2 >> 8);
>             buf[10 + off] = (byte) i2;
>             buf[12 + off] = (byte) (i3 >> 8);
>             buf[14 + off] = (byte) i3;
>             buf[16 + off] = '-';
>             buf[18 + off] = (byte) (i4 >> 8);
>             buf[20 + off] = (byte) i4;
>             buf[22 + off] = (byte) (i5 >> 8);
>             buf[24 + off] = (byte) i5;
>             buf[26 + off] = '-';
>             buf[28 + off] = (byte) (i6 >> 8);
>             buf[30 + off] = (byte) i6;
>             buf[32 + off] = (byte) (i7 >> 8);
>             buf[34 + off] = (byte) i7;
>             buf[36 + off] = '-';
>             buf[38 + off] = (byte) (i8 >> 8);
>             buf[40 + off] = (byte) i8;
>             buf[42 + off] = (byte) (i9 >> 8);
>             buf[44 + off] = (byte) i9;
>             buf[46 + off] = '-';
>             buf[48 + off] = (byte) (i10 >> 8);
>             buf[50 + off] = (byte) i10;
>             buf[52 + off] = (byte) (i11 >> 8);
>             buf[54 + off] = (byte) i11;
>             buf[56 + off] = (byte) (i12 >> 8);
>             buf[58 + off] = (byte) i12;
>             buf[60 + off] = (byte) (i13 >> 8);
>             buf[62 + off] = (byte) i13;
>             buf[64 + off] = (byte) (i14 >> 8);
>             buf[66 + off] = (byte) i14;
>             buf[68 + off] = (byte) (i15 >> 8);
>             buf[70 + off] = (byte) i15;
> 
>             return new String(buf, UTF16);
>         }

We should avoid extra indentation when possible.

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

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


More information about the core-libs-dev mailing list