RFR: 8356709: Avoid redundant String formatting in BigDecimal.valueOf(double)

Raffaello Giulietti rgiulietti at openjdk.org
Mon May 12 14:43:12 UTC 2025


On Sun, 11 May 2025 16:22:11 GMT, Johannes Graham <duke at openjdk.org> wrote:

> Optimize `BigDecimal.valueOf(double)` by using `FormattedFPDecimal` instead of converting to decimal string and then parsing it. This results in an approximate 6x improvement for me.

macOS 15.4.1 / M1 Pro / 32 GiB RAM

BigDecimals.testValueOfWithDouble        avgt   15    12.448 ±   0.280  ns/op
BigDecimals.testValueOfWithDoubleString  avgt   15   115.253 ±   4.349  ns/op

src/java.base/share/classes/jdk/internal/math/FormattedFPDecimal.java line 38:

> 36:  * f and e meeting d = f 10^e.
> 37:  * It then rounds d to the appropriate number of digits, as per specification,
> 38:  * and extracts the digits of both the significand and, where required, the®

Suggestion:

 * and extracts the digits of both the significand and, where required, the

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

PR Comment: https://git.openjdk.org/jdk/pull/25173#issuecomment-2872554601
PR Review Comment: https://git.openjdk.org/jdk/pull/25173#discussion_r2084591912


More information about the core-libs-dev mailing list