是否有必要为并发垃圾回收指定额外的GC?

6
今天我们使用并发标记清除(concurrent mark sweep),像这样指定它:
-XX:+UseConcMarkSweepGC

我看到一些文章推荐在这个表单中使用额外的参数:
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseParNewGC

根据我所了解的,当使用并发标记清除器时,UseParNewGC会自动指定,并且如果机器只有1或2个CPU,则需要CMSIncrementalMode。

因此,在考虑到我们大多数机器都是四核的情况下(使得系统可见的CPU数量为4或8),使用这些附加参数是否有意义呢?

谢谢!

1个回答

2
-XX:+CMSIncrementalMode会在确定是一个好时机时尝试触发并发清理。我使用过它,但我不认为它有帮助。
在我看来,最有用的是可以调整的新大小,例如-XX:NewSize=1g -mx2g,根据短暂对象的生命周期长短,可以使其更大或更小。即您希望伊甸园的大小很小,但足够大,以便对象通常在清理之前被丢弃。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接