RFR: 8315585: Optimization for decimal to string [v7]

Shaojin Wen duke at openjdk.org
Sun Oct 22 05:59:34 UTC 2023


On Thu, 19 Oct 2023 10:22:19 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:

>> I've opened up #16244 for review - thanks for helping with analysis and verification.
>
> @cl4es @wenshao I'd like to review the mathematical aspects of these changes once the refactorings with string concatenations have stabilized enough to your satisfaction.
> 
> Please ping me here when no more such work is planned.
> TIA

@rgiulietti It is currently a stable version, please help me start the review.

Here are the performance numbers running on the MaxBook M1 Pro:


-Benchmark                                   Mode  Cnt    Score   Error  Units (baseline)
-BigDecimals.hugeEngineeringToString         avgt   15  199.683 ? 7.457  ns/op
-BigDecimals.hugeLayoutCharsToString         avgt   15  205.366 ? 2.673  ns/op
-BigDecimals.hugePlainToString               avgt   15  219.066 ? 3.334  ns/op
-BigDecimals.largeScale2EngineeringToString  avgt   15   55.303 ? 0.606  ns/op
-BigDecimals.largeScale2LayoutCharsToString  avgt   15   55.284 ? 0.512  ns/op
-BigDecimals.largeScale2PlainToString        avgt   15   22.836 ? 0.128  ns/op
-BigDecimals.largeScale3EngineeringToString  avgt   15   57.332 ? 0.851  ns/op
-BigDecimals.largeScale3LayoutCharsToString  avgt   15   57.535 ? 1.221  ns/op
-BigDecimals.largeScale3PlainToString        avgt   15   23.967 ? 0.055  ns/op
-BigDecimals.smallScale2EngineeringToString  avgt   15   17.063 ? 0.444  ns/op
-BigDecimals.smallScale2LayoutCharsToString  avgt   15   16.999 ? 0.072  ns/op
-BigDecimals.smallScale2PlainToString        avgt   15   24.069 ? 0.511  ns/op
-BigDecimals.smallScale3EngineeringToString  avgt   15   53.697 ? 0.872  ns/op
-BigDecimals.smallScale3LayoutCharsToString  avgt   15   53.754 ? 1.990  ns/op
-BigDecimals.smallScale3PlainToString        avgt   15   24.596 ? 0.100  ns/op

+Benchmark                                   Mode  Cnt    Score   Error  Units (51b1041)
+BigDecimals.hugeEngineeringToString         avgt   15  194.288 ? 7.294  ns/op (+2.78)
+BigDecimals.hugeLayoutCharsToString         avgt   15  192.121 ? 2.079  ns/op (+6.90)
+BigDecimals.hugePlainToString               avgt   15  201.692 ? 4.527  ns/op (+8.62)
+BigDecimals.largeScale2EngineeringToString  avgt   15   20.128 ? 0.266  ns/op (+174.76)
+BigDecimals.largeScale2LayoutCharsToString  avgt   15   20.681 ? 0.508  ns/op (+167.32)
+BigDecimals.largeScale2PlainToString        avgt   15   19.950 ? 0.273  ns/op (+14.47)
+BigDecimals.largeScale3EngineeringToString  avgt   15   23.564 ? 0.542  ns/op (+143.31)
+BigDecimals.largeScale3LayoutCharsToString  avgt   15   23.424 ? 0.057  ns/op (+145.63)
+BigDecimals.largeScale3PlainToString        avgt   15   22.991 ? 0.048  ns/op (+4.25)
+BigDecimals.smallScale2EngineeringToString  avgt   15   11.641 ? 0.181  ns/op (+46.58)
+BigDecimals.smallScale2LayoutCharsToString  avgt   15   11.589 ? 0.031  ns/op (+46.69)
+BigDecimals.smallScale2PlainToString        avgt   15   11.594 ? 0.032  ns/op (+107.60)
+BigDecimals.smallScale3EngineeringToString  avgt   15   24.684 ? 0.313  ns/op (+117.54)
+BigDecimals.smallScale3LayoutCharsToString  avgt   15   25.058 ? 0.151  ns/op (+114.52)
+BigDecimals.smallScale3PlainToString        avgt   15   24.194 ? 0.217  ns/op (+1.67)

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

PR Comment: https://git.openjdk.org/jdk/pull/16006#issuecomment-1774003635


More information about the core-libs-dev mailing list