On Tue, 12 Sep 2023 19:23:13 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> 温绍锦 has updated the pull request with a new target base due to a merge or a 
>> rebase. The pull request now contains 19 commits:
>> 
>>  - merge from master
>>  - Merge branch 'master' into optimization_for_uuid_to_string
>>    
>>    # Conflicts:
>>    # src/java.base/share/classes/java/util/UUID.java
>>    # src/java.base/share/classes/jdk/internal/util/HexDigits.java
>>  - lo | hi => hi | lo
>>  - add DIGITS description
>>  - reversed how & hi
>>  - Merge branch 'master' into optimization_for_uuid_to_string
>>  - remove redundant parentheses
>>  - fix java doc, big-endian -> little-endian
>>  - Merge branch 'master' into optimization_for_uuid_to_string
>>  - use ByteArrayLittleEndian
>>  - ... and 9 more: https://git.openjdk.org/jdk/compare/e0845163...4f6ed3e6
>
> src/java.base/share/classes/jdk/internal/util/HexDigits.java line 112:
> 
>> 110:                 | (DIGITS[b1 & 0xff] << 16)
>> 111:                 | (((long) DIGITS[b2 & 0xff]) << 32)
>> 112:                 | (((long) DIGITS[b3 & 0xff]) << 48);
> 
> Can you reverse the order of these source lines to put the shifts of the 
> higher order bits before the lower order bit shifts.  `3333222211110000`. Its 
> easier to understand where the bits end up in the long.
> The rest of the change is better focused.

if change packDigits order, performance will be slow, I don't know why yet.

The following is the data running on MacBookPro M1 Max :

make test TEST="micro:java.util.UUIDBench.toString"

Benchmark           (size)   Mode  Cnt   Score   Error   Units (current order)
UUIDBench.toString   20000  thrpt   15  96.396 ? 0.946  ops/us


Benchmark           (size)   Mode  Cnt   Score   Error   Units (change 
packDigits order)
UUIDBench.toString   20000  thrpt   15  86.496 ? 0.542  ops/us

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14745#discussion_r1323682688

Reply via email to