JEP 173: Retire Some Rarely-Used GC CombinationsJEP 173: Retire Some Rarely-Used GC CombinationsOwnerBengt RutissonTypeFeatureScopeJDKStatusClosed / DeliveredRelease8Componenthotspot / gcDiscussionhotspot dash gc dash dev at openjdk dot java dot netEffortXSDurationXSReviewed byJesper Wilhelmsson, John Coomes, Jon MasamitsuEndorsed byMikael VidstedtCreated2012/11/26 20:00Updated2018/06/19 21:50Issue8046163Summary
Remove three rarely-used combinations of garbage collectors in order to
reduce ongoing development, maintenance, and testing costs.
Goals
There are three GC combinations that are currently not used enough to
warrant future support:

DefNew + CMS
ParNew + SerialOld
Incremental CMS

These combinations add extra complexity to the GC code base and consume
valuable testing resources while adding very little value to the
users. To simplify the GC code base and improve testing and
sustainability we propose to remove these combinations.
Motivation
There is a large cost to keep all the existing GC combinations. There are
not enough resources to test all of them. New features take longer to
implement and test due to the complexity of the GC code base. As a first
step towards a simpler, more stable, and faster code base we need to
remove some of the rarely used combinations.
Description
The DefNew + CMS and ParNew + SerialOld combinations and the Incremental
Mode of CMS  will be deprecated (logging a warning message). This is to
be interpreted as that these GC combinations will be removed in some
upcoming major release.
The following combinations of command-line flags will be affected:


Flags
GC Configuration


 -XX:-UseParNewGC  -XX:+UseConcMarkSweepGC 
 DefNew + CMS 


 -XX:+UseParNewGC 
 ParNew + SerialOld 


 -Xincgc 
 ParNew + iCMS 


 -XX:+CMSIncrementalMode  -XX:+UseConcMarkSweepGC 
 ParNew + iCMS 


 -XX:+CMSIncrementalMode  -XX:+UseConcMarkSweepGC  -XX:-UseParNewGC 
 DefNew + iCMS 


Alternatives
Continue to support untested GC combinations.
Testing


Tests to verify that the corresponding command line flags produce
warnings and error messages as appropriate.


Make sure that all remaining GC combinations are subject to
continuous testing.


Risks and Assumptions
There are basically three assumptions about the GC combinations in
question:


Most users that are currently using Incremental CMS will benefit from
switching over to "normal" CMS.


Users using DefNew + CMS will benefit from using ParNew + CMS
instead.


Users using ParNew + SerialOld will benefit from using
ParallelScavenge + SerialOld instead


There is a risk that one or more of these assumptions don't hold up. As
far as we can tell at the moment the risk is small.
Impact


Compatibility: We will be deprecating command-line options.


User experience: Some users may have to change their currently
selected GC. Hopefully this will be a change for the better.


Documentation: Since command-line options are changed the
corresponding documentation needs to be updated.  We also need to add
release notes.


InstallingContributingSponsoringDevelopers' GuideVulnerabilitiesJDK GA/EA BuildsMailing listsWiki
                      · IRCBylaws · CensusLegalWorkshopJEP ProcessSource codeMercurialGitHubToolsGitjtreg harnessGroups(overview)AdoptionBuildClient LibrariesCompatibility & Specification ReviewCompilerConformanceCore LibrariesGoverning BoardHotSpotIDE Tooling & SupportInternationalizationJMXMembersNetworkingPortersQualitySecurityServiceabilityVulnerabilityWebProjects(overview,
      archive)AmberBabylonCRaCCaciocavalloClosuresCode ToolsCoinCommon VM InterfaceCompiler GrammarDetroitDevelopers' GuideDevice I/ODukeGalahadGraalIcedTeaJDK 7JDK 8JDK 8 UpdatesJDK 9JDK
      (…,
       21,
       22,
       23)JDK UpdatesJavaDoc.NextJigsawKonaKullaLambdaLanaiLeydenLilliputLocale EnhancementLoomMemory Model UpdateMetropolisMission ControlMulti-Language VMNashornNew I/OOpenJFXPanamaPenrosePort: AArch32Port: AArch64Port: BSDPort: HaikuPort: Mac OS XPort: MIPSPort: MobilePort: PowerPC/AIXPort: RISC-VPort: s390xPortolaSCTPShenandoahSkaraSumatraTiered AttributionTsanType AnnotationsValhallaVeronaVisualVMWakefieldZeroZGC

        © 2024 Oracle Corporation and/or its affiliates
        Terms of Use
        ·
        
            License: GPLv2
        · Privacy
        · Trademarks
