Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8073273

JEP 248: Make G1 the Default Garbage Collector

    Details

    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
      gc
    • Scope:
      JDK
    • Discussion:
      hotspot dash dev at openjdk dot java dot net
    • Effort:
      M
    • Duration:
      M
    • Alert Status:
       Green
    • JEP Number:
      248

      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) 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.

        Activity

        Hide
        mcastegr Mattis Castegren (Inactive) added a comment -
        I marked this as not needing a TOI. If you disagree, please change the label to toi=yes
        Show
        mcastegr Mattis Castegren (Inactive) added a comment - I marked this as not needing a TOI. If you disagree, please change the label to toi=yes

          People

          • Assignee:
            sjohanss Stefan Johansson
            Reporter:
            pssu Paul Su
            Owner:
            Stefan Johansson
            Reviewed By:
            Mikael Vidstedt
            Endorsed By:
            Mikael Vidstedt
          • Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:
              Resolved:
              Integration Due: