-XX:+UseConcMarkSweepGC (what is default young generation collector?)

Anton Kasianchuk picture Anton Kasianchuk · Dec 10, 2013 · Viewed 48.5k times · Source

As far as I know we can run JVM with the next options:

-XX:+UseConcMarkSweepGC
-XX:-UseParNewGC

in this case we will have the Serial (DefNew) garbage collector for the young generation and the Concurrent Mark Sweep garbage collector for the old generation.

Well, can we run JVM with -XX:+UseConcMarkSweepGC option only? I mean without any options that describes a garbage collector for the young generation. If we can do that, which garbage collector will be used for the old generation?

Answer

Rafael Winterhalter picture Rafael Winterhalter · Dec 10, 2013

According to this blog entry:

Note that with recent JVM versions -XX:+UseParNewGC is enabled automatically when -XX:+UseConcMarkSweepGC is set. As a consequence, if parallel young generation GC is not desired, it needs to be disabled by setting -XX:-UseParNewGC.

For a concise summary of command line combinations, you might also be interested in this overview.