On Sun, 2 Jul 2023 02:05:48 GMT, Chen Liang <li...@openjdk.org> wrote:

>> 温绍锦 has updated the pull request incrementally with one additional commit 
>> since the last revision:
>> 
>>   use upper case for static final field
>
> src/java.base/share/classes/java/lang/StringUTF16.java line 1540:
> 
>> 1538:         if (isBigEndian()) {
>> 1539:             for (int i = 0; i < digits.length; i++) {
>> 1540:                 digits[i] <<= 8;
> 
> I know this changes the char-based endian (so putInt puts the non-0 to right 
> bytes), what I suggest is something like:
> 
> digits[i] = Integer.reverseBytes(digits[i] << 8);
> 
> 
> And you then remove the trailing `false` (little-endian) argument to 
> `UNSAFE.putIntUnaligned`. 
> 
> This is safe because you don't use `PACKED_DIGITS_UTF16` with bitwise 
> operations, unlike in UUID.

in the getChars method, it is written from the back to the front. I run 
benchmark and found that the performance of using little endian is better.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14699#discussion_r1249100341

Reply via email to