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

OwnerJesper Wilhelmsson
Created2011/11/01 20:00
Updated2014/07/10 20:22
TypeFeature
StatusCandidate
Componenthotspot / gc
ScopeImplementation
Discussionhotspot dash gc dash dev at openjdk dot java dot net
EffortS
DurationS
Priority4
Reviewed byMikael Vidstedt
Endorsed byMikael Vidstedt
Issue8046131

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