On Tue, 7 Jan 2025 10:39:18 GMT, Shaojin Wen <[email protected]> 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