RFR: 8356709: Avoid redundant String formatting in BigDecimal.valueOf(double) [v3]
Raffaello Giulietti
rgiulietti at openjdk.org
Wed May 14 14:39:37 UTC 2025
On Wed, 14 May 2025 13:47: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.
>
> Johannes Graham has updated the pull request incrementally with one additional commit since the last revision:
>
> address review suggestions
src/java.base/share/classes/jdk/internal/math/FormattedFPDecimal.java line 94:
> 92: final int targetPrec =
> 93: // No extra trailing digit needed
> 94: (-3 <= expR && expR <= -1) ? 1
Suggestion:
(-3 <= expR && expR < 0) ? 1
Fully equivalent, but matches the `Double.toString(double)` spec more closely.
src/java.base/share/classes/jdk/internal/math/FormattedFPDecimal.java line 97:
> 95:
> 96: // Keep digits to left of decimal, plus leave a trailing zero
> 97: : (0 <= expR && expR <= 6) ? expR + 2 :
Suggestion:
: (0 <= expR && expR < 7) ? expR + 2 :
Fully equivalent, but matches the `Double.toString(double)` spec more closely.
src/java.base/share/classes/jdk/internal/math/FormattedFPDecimal.java line 109:
> 107: if (prec < targetPrec) {
> 108: // Add zeros needed to reach target precision
> 109: int addZeros = targetPrec - prec;
Suggestion:
final int addZeros = targetPrec - prec;
Just to be consistent with the usage of `final` in this method.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25173#discussion_r2089090546
PR Review Comment: https://git.openjdk.org/jdk/pull/25173#discussion_r2089090644
PR Review Comment: https://git.openjdk.org/jdk/pull/25173#discussion_r2089092505
More information about the core-libs-dev
mailing list