JEP 141: Increase the Client VM's Default Heap Size
|Component||hotspot / gc|
|Discussion||hotspot dash gc dash dev at openjdk dot java dot net|
|Reviewed by||Mikael Vidstedt|
|Endorsed by||Mikael Vidstedt|
Increase the default maximum heap size of the client JVM so that most client applications can run without tuning.
Run a set of benchmarks provided by the client team without tuning and without running out of memory.
Currently when running the 32-bit client JVM the default maximum heap size is 256MB, or less, which affects regular client applications. It should not be necessary to increase the maximum heap size in order to run demos or normal applications. The normal requirement for demos and modern applications is in the neighborhood of 512--1024MB of heap.
While increasing the default maximum heap size we need to evaluate whether we can do this with our current collectors and still meet the pause time requirements without the need for further performance improvements. The ParallelOld collector is most likely the first choice to investigate and it has been suggested to start using it as the default collector for client applications as part of this change.
If we see a need for performance improvements, we need to analyze the performance data in order to know what to focus our efforts on.
Risks and Assumptions
A larger heap may lead to longer garbage-collection pause times. If this turns out to be the case then we'll need to look at how to improve the GC to reduce pause times.
Increasing the default heap size could lead to failure to initialize the larger heap. This could be dealt with by allowing the VM to retry initialization with a smaller heap size.
Performance/scalability: No regressions. If the default garbage collector is changed then JVM tuning may be required to achieve the best performance.
Documentation: Documentation should be updated to reflect the changes in default heap size.