JEP 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector

Thomas Schatzl thomas.schatzl at
Wed Apr 12 14:30:52 UTC 2017

Hi Ben,

On Tue, 2017-04-11 at 17:42 +0100, Ben Evans wrote:
> Hi Thomas,
> If you have an example application that can demonstrably be tuned to
> have a max pause time of 50ms (on, say, a 2G heap), I would suggest
> that it would be highly advantageous to release it to the community
> as open source, at once.
> I have never seen *any* non-toy application of that heap size that
> can hit that pause goal & I have looked at quite a few recently.

  when I mentioned "the stated latency goals and heap requirements do
not seem to be problematic to achieve with G1" please be aware that we
are very likely looking at quite different instances of G1. 

>From various internal and external sources we know that you and the
community are (obviously) running some JDK 8u release. Many do not use
the latest JDK 8u, and there are still questions about G1 on JDK 7u.

As a HotSpot dev, my focus is naturally on the the very latest version
of the code and on upcoming changes.

So for me, the point of comparison for G1 vs. CMS should at least be
JDK 9 (if not 10). As dev I know that there has been a lot of progress
on many aspects of G1 in JDK 9 compared to JDK 8u, and we are already
ramping up pushing JDK 10 improvements.

This does not mean G1 is a perfect replacement for CMS even now in
JDK 10 repos :), but the completion of one of the originally intended
goals of G1, replacing CMS in the long term [1], is drawing closer.
The deprecation of CMS with JDK 9 just indicates that; support for CMS
may go away in the future, and we think that in JDK 9 G1 is in a state
to very seriously consider moving to it or at least try it out and give
Due to other changes in JDK 9, a serious re-evaluation of GC usage may
need to be done anyway.

We very appreciate such experience reports and requests for help on
channels like hotspot-gc-use. These are very valuable contributions
from you to us. They help us to better understand what and where pain
points are with G1, so that we can improve the collector accordingly.

Getting back to your request, I stand by my assertion, that (with
JDK 9/10) the given 50ms latency goals with the given heap size is
achievable on at least one non-toy application :)

But I am no good at determining what constitutes a toy-application, and
obviously I am biased here, so this is where I would be grateful if you
or somebody else could step in with a non-toy application setup.

Even if this investigation fails, we devs get useful information to
improve G1 in the future, and you will most likely get your application
meeting requirements with suggested tunings (either immediately, or at
a later point).



More information about the jdk9-dev mailing list