JEP 141: Increase the Client VM's Default Heap Size

AuthorJesper Wilhelmsson
OrganizationOracle
Created2011/11/1
Updated2012/12/4
TypeFeature
StateCandidate
Componentvm/gc
ScopeImpl
Internal-refsOracle:A360:684967
Discussionhotspot dash gc dash dev at openjdk dot java dot net
Start2012/Q3
EffortS
DurationS
Reviewed-byMikael Vidstedt
Endorsed-byMikael Vidstedt

Summary

Increase the default maximum heap size of the client JVM so that most client applications can run without tuning.

Success Metrics

Run a set of benchmarks provided by the client team without tuning and without running out of memory.

Motivation

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.

Description

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.

Impact