2016-09-19 49 views
1

每當使用CMS的併發模式故障或升級失敗時,它都會使用單線程完成GC。爲什麼它不能使用並行採集器來完整的GC來減少完整的GC懲罰?爲什麼CMS完全GC單線程?

回答

1

除了沒有特別的原因以外,沒有特別的原因,工程努力的重點是G1。 CMS的大多數用戶只是試圖以一種永不會發生的方式調整它,「從不」意味着間隔大於任何需要重啓JVM的時間間隔。由於收集器之間的內部數據結構不同,並行舊收集器不能通過簡單地調用其代碼來重複使用,因此它將涉及不重要的實現工作。

谷歌開發人員有proposed a patch爲CMS提供並行完整GC,但我不會指望它可以在任何openjdk構建中隨時使用。