标签: java garbage-collection concurrent-mark-sweep
每当使用CMS发生并发模式失败或升级失败时,它都使用单线程完成GC。为什么它不能使用并行收集器来完成GC以减少完整的GC惩罚?
答案 0 :(得分:1)
没有特别的理由,除了它没有以这种方式实施,工程工作集中在G1。 CMS的大多数用户只是尝试以一种从未发生过的方式对其进行调整,而且#34;从不"意味着间隔大于任何需要JVM重启的间隔。并行旧收集器不能通过简单地调用其代码来重用,因为收集器之间的内部数据结构不同,因此它将涉及非平凡的实现工作。
Google开发人员proposed一个patch向CMS提供并行完整GC,但我不会指望它很快就可以在任何openjdk版本中使用。