On Tue, 7 Jan 2025 10:39:18 GMT, Shaojin Wen <s...@openjdk.org> wrote:

> In PR #22928, UUID introduced long-based vectorized hexadecimal to string 
> conversion, which can also be used in Integer::toHexString and 
> Long::toHexString to eliminate table lookups. The benefit of eliminating 
> table lookups is that the performance is better when cache misses occur.

src/java.base/share/classes/java/lang/Integer.java line 312:

> 310:      * this string as a hexadecimal number to form and return a long 
> value.
> 311:      */
> 312:     static long hex8(long i) {

I think we should move this to HexDigits.

src/java.base/share/classes/java/lang/Long.java line 325:

> 323:             if (COMPACT_STRINGS) {
> 324:                 len -= 8;
> 325:                 Unsafe.getUnsafe().putLong(chars, ARRAY_BYTE_BASE_OFFSET 
> + len, Long.reverseBytes(x));

We only need to reverse on small endian platforms right? We can use 
putLongUnaligned which takes a boolean for big endian so conversion is 
automatic.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22942#discussion_r1905774332
PR Review Comment: https://git.openjdk.org/jdk/pull/22942#discussion_r1905786538

Reply via email to