On Wed, 10 Sep 2025 23:54:31 GMT, Johannes Graham <d...@openjdk.org> wrote:

>> src/java.base/share/classes/java/math/BigInteger.java line 4184:
>> 
>>> 4182: 
>>> 4183:         if (fitsIntoLong()) {
>>> 4184:             return Long.toString(longValue(), radix);
>> 
>> We may want to consider separating this `BigInteger` fast path from this 
>> PR/change, since it is independent of the speedup in the `DigitList` 
>> changes. Others may not have a problem with it though, so maybe we can wait 
>> and see what they say.
>
> Without the fast-path, there was a performance drop with the "small" 
> BigDecimals (from memory about 10%). That's what drove me to tinker with 
> `BigInteger.toString`. But if this one can stand on its own, despite the perf 
> drop, I'm happy to separate out the BigInteger part. I'll generate some new 
> perf numbers after the Level.Invocation fix.

OK understood. I think we would only want to go through with this PR if we 
could avoid that perf regression in the 
_DefFormatterBench.testSmallBigDecDefNumberFormatter_ case. So either including 
this BI fast path as part of this change, or (if there are scope concerns), 
making a separate change for it first and making this PR dependent on it seems 
reasonable to me. It would be good to get @rgiulietti's opinion on this.

I think it would also be good to include the _java.math.BigIntegers_ results 
since this change directly impacts those results as well. (Which look to have 
sizeable improvements for _BigIntegers.testSmallToString_  and 
_BigIntegers.testLargeToString_.)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27118#discussion_r2345424936

Reply via email to