Withdrawn: JDK-8311009: Long.toUnsignedString(long, int) doesn't have to create a BigInteger
duke
duke at openjdk.org
Wed Aug 23 13:19:30 UTC 2023
On Mon, 26 Jun 2023 14:58:56 GMT, Tingjun Yuan <duke at 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 added 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
>
>
> No CSR needed since the behavior is not changed.
This pull request has been closed without being integrated.
-------------
PR: https://git.openjdk.org/jdk/pull/14654
More information about the core-libs-dev
mailing list