> 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.

Tingjun Yuan has updated the pull request incrementally with one additional 
commit since the last revision:

  Update copyright year

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/14654/files
  - new: https://git.openjdk.org/jdk/pull/14654/files/4c336988..46f67e33

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14654&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14654&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/14654.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14654/head:pull/14654

PR: https://git.openjdk.org/jdk/pull/14654

Reply via email to