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