JDK-8241670 : Enhance heap region size ergonomics to improve OOTB performance
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 11,15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-03-26
  • Updated: 2021-02-04
  • Resolved: 2020-04-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15
15 b18Fixed
Related Reports
Relates :  
Relates :  
Sub Tasks
JDK-8242057 :  
Description
The way we currently choose the heap region size in G1 can sometimes give worse OOTB performance than expected. In recent benchmarking the difference between setting a fixed heap size of 4g and letting it get a default max heap of 4g was bigger than expected. 

Running SPECjbb2015, the max-jOPS increased with ~40% and critical-jOPS increased 130% when setting a fixed heap size. The main reason behind the improvement is that when running with a fixed heap size the region size will be 2m instead of 1m. This difference comes from the fact that both the initial and max heap size is considered when calculating the heap region size ergonomically.

We should look into changing this to give a better out of the box behavior.

Comments
See also https://kstefanj.github.io/2020/04/16/g1-ootb-performance.html.
04-02-2021

[~shade] Note, there is also JDK-8198505 (+ JDK-8226797) cleanup where g1Arguments.cpp has been re-arranged prior to this enhancement; and JDK-8234331 and beyond chain for powerOfTwo.hpp
03-02-2021

Just checking: how do we feel about backporting this to 11u, for the sake of users migrating from 8u to 11u and thus switching OOB GC from Parallel to G1?
03-02-2021

URL: https://hg.openjdk.java.net/jdk/jdk/rev/a54ff90a3015 User: sjohanss Date: 2020-04-02 19:35:39 +0000
02-04-2020