RFR: 8355719: Reduce memory consumption of BigInteger.pow() [v46]

fabioromano1 duke at openjdk.org
Tue Apr 29 15:55:47 UTC 2025


On Tue, 29 Apr 2025 15:18:35 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:

> What went wrong before?

@rgiulietti For some reason, compiling the test with a custom JVM will produce that exception at runtime. It must be compiled with the default JVM, then change the JVM manually and run it with the chosen one.

This is what I get with the current implementation of the master branch:


JMH version: 1.37
VM version: JDK 25-internal, OpenJDK 64-Bit Server VM, 25-internal-adhoc.kali.jdk

Benchmark                                   Mode  Cnt            Score             Error   Units
BigIntegerPow.testPowL                      avgt    3  17080232831.333 ±  3830337700.738   ns/op
BigIntegerPow.testPowL:gc.alloc.rate        avgt    3         1733.162 ±         386.040  MB/sec
BigIntegerPow.testPowL:gc.alloc.rate.norm   avgt    3  31040625648.000 ±         583.799    B/op
BigIntegerPow.testPowL:gc.count             avgt    3          530.000                    counts
BigIntegerPow.testPowL:gc.time              avgt    3          879.000                        ms
BigIntegerPow.testPowM                      avgt    3  12209505388.667 ±  7181143333.594   ns/op
BigIntegerPow.testPowM:gc.alloc.rate        avgt    3         1616.095 ±         932.925  MB/sec
BigIntegerPow.testPowM:gc.alloc.rate.norm   avgt    3  20677114856.000 ±         583.799    B/op
BigIntegerPow.testPowM:gc.count             avgt    3          424.000                    counts
BigIntegerPow.testPowM:gc.time              avgt    3          712.000                        ms
BigIntegerPow.testPowS                      avgt    3  11522214909.000 ±  1929610984.714   ns/op
BigIntegerPow.testPowS:gc.alloc.rate        avgt    3         1701.758 ±         282.671  MB/sec
BigIntegerPow.testPowS:gc.alloc.rate.norm   avgt    3  20562422661.333 ±         891.768    B/op
BigIntegerPow.testPowS:gc.count             avgt    3          350.000                    counts
BigIntegerPow.testPowS:gc.time              avgt    3          597.000                        ms
BigIntegerPow.testPowXL                     avgt    3  19278885432.000 ± 16339410697.856   ns/op
BigIntegerPow.testPowXL:gc.alloc.rate       avgt    3         1739.190 ±        1496.941  MB/sec
BigIntegerPow.testPowXL:gc.alloc.rate.norm  avgt    3  35109921304.000 ±         583.799    B/op
BigIntegerPow.testPowXL:gc.count            avgt    3          637.000                    counts
BigIntegerPow.testPowXL:gc.time             avgt    3         1035.000                        ms
BigIntegerPow.testPowXS                     avgt    3  10361656484.667 ±  1011383535.161   ns/op
BigIntegerPow.testPowXS:gc.alloc.rate       avgt    3         1746.103 ±         168.916  MB/sec
BigIntegerPow.testPowXS:gc.alloc.rate.norm  avgt    3  18974429138.667 ±         337.057    B/op
BigIntegerPow.testPowXS:gc.count            avgt    3          405.000                    counts
BigIntegerPow.testPowXS:gc.time             avgt    3          611.000                        ms

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

PR Comment: https://git.openjdk.org/jdk/pull/24690#issuecomment-2839418316


More information about the core-libs-dev mailing list