G1 GC中,在并发标记后,接下来会进行多少次Mixed GC,是由什么因素决定的?

Global Concurrent Marking会让接下来的GC转变为Mixed GC,且为其提供了CSet。Mixed GC可能会继续进行多次,才会转变回Young GC,直到下一次Global Concurrent Marking。
我不明白的是,反过来,Mixed GC转变回Young GC是由什么因素决定的?
有的小伙伴在博文中提到是要清理完整个CSet。可是,毕竟只有Global Concurrent Marking才会更新CSet,如果多次Mixed GC,则显然都是对最初那次Global Concurrent Marking所得到的CSet来进行。在此期间,region中对象的生存情况可能已经有了很大变化。如果一定要清理完整个CSet才变回Young GC,怕是与G1的“优先清理垃圾最多的region”的思路不符吧?

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏