RFR: 8366017: Extend the set of inputs handled by fast paths in FloatingDecimal

Raffaello Giulietti rgiulietti at openjdk.org
Tue Oct 14 18:02:05 UTC 2025


On Thu, 28 Aug 2025 15:24:21 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:

> Yet another step in modernizing `FloatingDecimal`s floating-point parsing.

This work's focus is on:
* Code reduction.
* Extensive documentation of mathematical aspects.
* Enhanced performance.

In particular, parsing outcomes of the `Double.toString(double)` and `Float.toString(float)` methods should be faster.

_Before_

Benchmark                               Mode  Cnt     Score    Error  Units
FloatingPointParse.parseDoubleS1        avgt    9   268.213 ±  0.901  ns/op
FloatingPointParse.parseDoubleS10       avgt    9  1091.924 ± 52.040  ns/op
FloatingPointParse.parseDoubleS2        avgt    9   340.953 ± 10.139  ns/op
FloatingPointParse.parseDoubleS4        avgt    9   499.272 ± 13.940  ns/op
FloatingPointParse.parseDoubleToString  avgt    9   272.870 ±  1.677  ns/op
FloatingPointParse.parseFloatS1         avgt    9    72.291 ±  1.574  ns/op
FloatingPointParse.parseFloatS10        avgt    9   321.380 ± 10.046  ns/op
FloatingPointParse.parseFloatS2         avgt    9   104.538 ±  2.701  ns/op
FloatingPointParse.parseFloatS4         avgt    9   159.879 ±  6.711  ns/op
FloatingPointParse.parseFloatToString   avgt    9   140.413 ±  1.844  ns/op


_After_

Benchmark                               Mode  Cnt    Score   Error  Units
FloatingPointParse.parseDoubleS1        avgt    9   77.753 ± 1.437  ns/op
FloatingPointParse.parseDoubleS10       avgt    9  368.850 ± 0.974  ns/op
FloatingPointParse.parseDoubleS2        avgt    9  112.624 ± 2.094  ns/op
FloatingPointParse.parseDoubleS4        avgt    9  177.373 ± 1.137  ns/op
FloatingPointParse.parseDoubleToString  avgt    9   76.904 ± 1.152  ns/op
FloatingPointParse.parseFloatS1         avgt    9   53.126 ± 0.793  ns/op
FloatingPointParse.parseFloatS10        avgt    9  300.140 ± 1.330  ns/op
FloatingPointParse.parseFloatS2         avgt    9   83.329 ± 0.251  ns/op
FloatingPointParse.parseFloatS4         avgt    9  137.046 ± 2.160  ns/op
FloatingPointParse.parseFloatToString   avgt    9   56.267 ± 0.698  ns/op```

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

PR Comment: https://git.openjdk.org/jdk/pull/26990#issuecomment-3403016460


More information about the core-libs-dev mailing list