RFR: 8341470: BigDecimal.stripTrailingZeros() optimization [v33]
Raffaello Giulietti
rgiulietti at openjdk.org
Wed Oct 9 20:35:14 UTC 2024
On Wed, 9 Oct 2024 15:18:15 GMT, fabioromano1 <duke at openjdk.org> wrote:
>> An optimized algorithm for `BigDecimal.stripTrailingZeros()` that uses repeated squares trick.
>
> fabioromano1 has updated the pull request incrementally with one additional commit since the last revision:
>
> Store log5(2) in BigDecimal
Benchmarks
Current mainline (note that `testXL` takes about 4 minutes for about 1 million trailing zeros)
Benchmark Mode Cnt Score Error Units
BigDecimalStripTrailingZeros.testL avgt 15 243184468.777 ? 5774928.564 ns/op
BigDecimalStripTrailingZeros.testM avgt 15 178494.667 ? 745.774 ns/op
BigDecimalStripTrailingZeros.testS avgt 15 414.158 ? 2.164 ns/op
BigDecimalStripTrailingZeros.testXL avgt 15 245675728189.000 ? 2061221700.695 ns/op
BigDecimalStripTrailingZeros.testXS avgt 15 29.788 ? 0.567 ns/op
Finished running test 'micro:java.math.BigDecimalStripTrailingZeros'
Current status of this PR (note that `testXL` takes about 0.5 seconds for about 1 million trailing zeros)
Benchmark Mode Cnt Score Error Units
BigDecimalStripTrailingZeros.testL avgt 15 2726326.956 ? 18516.336 ns/op
BigDecimalStripTrailingZeros.testM avgt 15 9336.508 ? 88.096 ns/op
BigDecimalStripTrailingZeros.testS avgt 15 155.843 ? 1.448 ns/op
BigDecimalStripTrailingZeros.testXL avgt 15 445180776.778 ? 1891719.217 ns/op
BigDecimalStripTrailingZeros.testXS avgt 15 21.512 ? 0.387 ns/op
Finished running test 'micro:java.math.BigDecimalStripTrailingZeros'
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21323#issuecomment-2403376022
More information about the core-libs-dev
mailing list