RFR: 8311207: Cleanup for Optimization for UUID.toString [v15]

温绍锦 duke at openjdk.org
Tue Sep 12 22:47:48 UTC 2023


On Tue, 12 Sep 2023 19:23:13 GMT, Roger Riggs <rriggs at 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


More information about the core-libs-dev mailing list