There are some performance and footprint regressions on various platforms which appeared after integration of JDK-8238687.
Comments
Closing as WNF because these are somewhat expected changes after behavioral changes for G1.
22-10-2025
The footprint regression is primarily due to the removal of heap shrinking during the Remark phase (JDK-8238687). Previously, the heap was actively reduced at each Remark, leading to the following behavior (as seen in Footprint3-Spring-G1, JFR-Footprint3-Spring):
Where, during Remark, the heap is shrunk from 2064M down to 112M:
[0.867s][info ][gc ] GC(0) Pause Young (Concurrent Start) (Metadata GC Threshold) 86M->9M(2064M) 11.661ms
.
[0.876s][info ][gc,start ] GC(1) Pause Remark
[0.878s][info ][gc ] GC(1) Pause Remark 11M->11M(112M) 1.715ms
With the recent change, we no longer shrink the heap during every Remark:
[0.987s][info ][gc ] GC(0) Pause Young (Concurrent Start) (Metadata GC Threshold) 83M->9M(2064M) 12.512ms
.
[0.998s][info ][gc,start ] GC(1) Pause Remark
[1.001s][info ][gc ] GC(1) Pause Remark 10M->10M(2064M) 3.094ms
In this scenario, what appears as footprint “growth” is actually the result of retaining the initial heap size of 2064M, rather than shrinking it at each Remark. Previously, by the time tools like NMT would observe the process, the heap had already been reduced to a much smaller size (e.g., 112M), giving the appearance of a lower memory footprint.
With heap shrinking removed during Remark, the heap remains at its original, larger size (2064M), so the reported footprint is correspondingly higher. Therefore, the perceived regression is not due to actual increase in memory footprint, but rather to the change in heap management behavior that remotes automatic shrinking immediately after benchmark startup.
For other cases, such as Renaissance-ScalaStmBench7, the footprint increase is also partly due to more aggressive heap expansion. This is a result of changing the default GCTimeRatio from 12 to 24. By increasing the GCTimeRatio, we target lower GC overhead, which may cause the heap to expand in order to meet the new GC overhead target.