On Tue, 12 Sep 2023 01:00:39 GMT, 温绍锦 <d...@openjdk.org> wrote:

>> Some codes in core libs are duplicated, including:
>> java.util.DecimalDigits::DIGITS -> java.lang.StringLatin1.PACKED_DIGITS
>> java.util.DecimalDigits::size -> java.lang.Long.stringSize
>> 
>> We can reduce duplication through JavaLangAccess, which is also needed in 
>> other places, such as:
>> https://github.com/openjdk/jdk/pull/15555
>
> 温绍锦 has updated the pull request incrementally with one additional commit 
> since the last revision:
> 
>   little-endian

Running some additional testing. This mostly looks fine. 

One issue is that you're swapping the byte-order in `DecimalDigits::DIGITS` but 
not in `OctalDigits` and `HexDigits`. I think we need to keep these internally 
consistent to avoid surprises.

I also would like to see performance numbers of the byte order swap evaluated 
in isolation. I suspect the real effect is small and might be due to JIT noise 
rather than a real effect, and that this swap got rushed in without solid 
evidence that it helps. 

If there's no significant performance difference I would prefer if we kept 
`DecimalDigits::DIGITS` big-endian encoded - which is more intuitive to most - 
and adjust code depending on `DecimalDigits::digitPair` to use `ByteArray` 
rather than `ByteArrayLittleEndian`.

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

PR Comment: https://git.openjdk.org/jdk/pull/15651#issuecomment-1715419335

Reply via email to