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

Roger Riggs rriggs at openjdk.org
Wed Jun 21 15:24:10 UTC 2023


On Wed, 21 Jun 2023 14:31:20 GMT, Chen Liang <liach at openjdk.org> wrote:

>> Not sure if this can be applied but some months ago, I optimized Bits to use VarHandles rather than explicitly shifting bits around. This gave us a significant performance increase:
>> 
>> https://github.com/openjdk/jdk/pull/11840/files
>
> The key to the optimization was MethodHandles.byteArrayViewVarHandle. Don't know if StringUTF16.putChar and StringUTF16.getChar can benefit from such an update.

CDS can initialize arrays efficiently.  The Long class already uses CDS to initialize the cache of Long values.
See the LongCache code for an example of initializing from CDS with a fallback to direct initialization.
You could move the HEX256 array to the LongCache holder class and avoid any performance hit on startup.

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

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


More information about the core-libs-dev mailing list