1

目前我正在使用 CMS 和 ParNewGC 的组合

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC

据我了解,CMS 用于 Old Gen GC,而 UserPareNewGC 用于您的垃圾回收。

如果我只将 CMS 作为单个参数传递 -XX:+UseConcMarkSweepGCCMS 是否用于年轻一代和老一代的垃圾收集?

我认为它UseParNewGC仍然用于年轻一代,即使它没有与 CMS 一起配置。但我想确认这个假设。

我对吗?

编辑:我使用的是JDK 1.7 版本如果1.7 和 1.8中的行为不同,请解释。

4

2 回答 2

1

当问 gc 问题时,您应该说明您想知道的 jdk 版本,因为实际组合因版本而异。但是,CMS 只用于老一代,从不用于年轻一代。将使用Parallell New Gen 清除。

于 2015-11-25T14:55:55.530 回答
1

我认为 UseParNewGC 仍然用于年轻一代,即使它没有与 CMS 一起配置。但我想确认这个假设。

您始终可以通过附加到命令行来确定有效标志。-XX:+PrintFlagsFinal

这将允许您确定更改标志 A 是否会影响标志 B。

于 2015-11-25T15:13:44.057 回答