On Mon, 26 Jun 2023 14:58:56 GMT, Tingjun Yuan <d...@openjdk.org> wrote:
> This PR changes the implementation of `Long.toUnsignedString(long, int)` for > "default" radices, which avoids creating a `BigInteger` and makes use of > `Long.divideUnsigned` and `Long.remainderUnsigned`. > > I've run the test on `test/jdk/java/lang/Long/Unsigned.java` and it works > correctly. I believe that there is no need to add more test cases. > > I've add a benchmark case to > `test/micro/org/openjdk/bench/java/lang/Longs.java` for this method. Here is > the benchmark result tested on my machine: > > Before (JDK 20.0.1): > > > Benchmark (size) Mode Cnt Score Error Units > Longs.toUnsignedStringNegative 500 avgt 15 6428.711 ± 63.142 us/op > > > After: > > > Benchmark (size) Mode Cnt Score Error Units > Longs.toUnsignedStringNegative 500 avgt 15 3823.655 ± 146.171 us/op > > > I've submitted a bug report for this to the [Java Bug > Database](https://bugs.java.com/bugdatabase/). No CSR needed since the > behavior is not changed. BTW, do I need to remove `toUnsignedBigInteger` method (which is private and no longer used)? ------------- PR Comment: https://git.openjdk.org/jdk/pull/14654#issuecomment-1610942630