On Tue, 29 Apr 2025 15:10:10 GMT, fabioromano1 <d...@openjdk.org> wrote:

>> This PR optimizes `BigInteger.pow(int)` method. The primary enhancement in 
>> `pow()` is not concerned most on execution time, but rather in memory 
>> optimization, because the PR implementation does the "shift of the exponent" 
>> squaring the result rather than the base, so the base is not squared like in 
>> the current implementation, and this permits to save about half of the 
>> memory.
>
> fabioromano1 has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Adjust the type of operand
>  - Use a more loose formula to do range check
>    
>    Use a more loose formula to do range check, in order not to exclude a 
> priori values that may be inside the supported range

Thanks.

What went wrong before?
> Instead, when I try to run the tests with a custom JVM, unfortunately I get 
> this Exception:
> 
> Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find 
> the resource: /META-INF/BenchmarkList
>         at 
> org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
>         at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
>         at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
>         at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
>         at org.openjdk.jmh.Main.main(Main.java:71)
> 

Some observations:
- You should really compare before/after on the otherwise same environment, 
here JDK 25-internal. Comparing JDK 21.0.7-ea (which is an early-access 
release) and JDK 25-internal might not be that meaningful. In the meantime 
there have been improvements in the runtime, GC, etc.
- AFAIU, your Linux OS runs in some virtualized environment (e.g., VirtualBox). 
It would be better to use some native installation, but I understand this is 
not always feasible.

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

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

Reply via email to