Java 什么';这是-XX+;是否使用CMSCompattFullCollection?

Java 什么';这是-XX+;是否使用CMSCompattFullCollection?,java,garbage-collection,concurrent-mark-sweep,Java,Garbage Collection,Concurrent Mark Sweep,我知道它告诉CMS收集器在发生完整GC时对旧gen进行压缩 但我想确认我是否正确理解(从各种来源拼凑而成): 一个完整的GC将暂停世界,收集并压缩旧的gen(使用CMS备注阶段的结果),然后收集年轻的gen,升级对象(如果有),并恢复世界 此时,旧gen中可能存在浮动垃圾,usecmscompactfullcollection将清理它们并再次压缩旧gen(基本上是旧gen上的另一个GC)。因为世界已经停止了,也许值得再做一点压缩 这个描述正确吗?我是否遗漏了任何重要的细节?谢谢这张票回答得很好:

我知道它告诉CMS收集器在发生完整GC时对旧gen进行压缩

但我想确认我是否正确理解(从各种来源拼凑而成):

一个完整的GC将暂停世界,收集并压缩旧的gen(使用CMS备注阶段的结果),然后收集年轻的gen,升级对象(如果有),并恢复世界

此时,旧gen中可能存在浮动垃圾,
usecmscompactfullcollection
将清理它们并再次压缩旧gen(基本上是旧gen上的另一个GC)。因为世界已经停止了,也许值得再做一点压缩


这个描述正确吗?我是否遗漏了任何重要的细节?谢谢

这张票回答得很好:

基本上,我的理解是正确的。当分配失败时,前台CMS模式从后台模式拾取(因为在故障解决之前系统无法继续)

-XX:+useCmsCompactFullCollection
告诉前台模式使用串行旧数据运行压缩。它对整个GC没有影响

在Java8中,前台模式已被弃用(现在运行完整GC是唯一的选项),标志也是如此

结论


旗子挂了,不要用了。

这张票是一个很好的答案:

基本上,我的理解是正确的。当分配失败时,前台CMS模式从后台模式拾取(因为在故障解决之前系统无法继续)

-XX:+useCmsCompactFullCollection
告诉前台模式使用串行旧数据运行压缩。它对整个GC没有影响

在Java8中,前台模式已被弃用(现在运行完整GC是唯一的选项),标志也是如此

结论

这面旗子死了,不要用它