JDK-8073273 : JEP 248: Make G1 the Default Garbage Collector
  • Type: JEP
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P2
  • Status: Closed
  • Resolution: Delivered
  • Fix Versions: 9
  • Submitted: 2015-02-16
  • Updated: 2017-09-12
  • Resolved: 2017-04-21
Related Reports
Blocks :  
Description
Summary
-------

Make G1 the default garbage collector on 32- and 64-bit server
configurations.


Motivation
----------

Limiting GC pause times is, in general, more important than maximizing
throughput.  Switching to a low-pause collector such as G1 should provide
a better overall experience, for most users, than a throughput-oriented
collector such as the Parallel GC, which is currently the default.

Many performance improvements were made to G1 in JDK 8 and its update
releases, and further improvements are planned for JDK 9.  The
introduction of concurrent class unloading ([JEP 156][1]) in JDK 8u40
made G1 a fully-featured garbage collector, ready to be the default.


Description
-----------

Changing the default collector is straightforward.


Risks and Assumptions
---------------------

  - The change is based on the assumption that limiting latency is often
    more important than maximizing throughput.  If this assumption is
    incorrect then this change might need to be reconsidered.

  - G1 is seen as a robust and well-tested collector.  It is not expected
    to have stability problems, but becoming the default collector will
    increase its visibility and may reveal previously-unknown issues. If
    a critical issue is found that can't be addressed in the JDK 9 time
    frame, we will revert back to use Parallel GC as the default for the
    JDK 9 GA.

  - The resource usage of G1 is different from Parallel.  When resource
    usage overhead needs to be minimized a collector other than G1 should
    be used, and after this change the alternate collector will have to
    be specified explicitly.


[1]: http://openjdk.java.net/jeps/156

Comments
I marked this as not needing a TOI. If you disagree, please change the label to toi=yes
16-12-2015