java gc cms_Java垃圾收集器:G1GC何时将CMS强制退出?
java gc cms
在針對(duì)JDK 9(2017/4/4)提出的JEP中 , Mark Reinhold寫(xiě)道JEP 291 (“棄用并發(fā)標(biāo)記掃描(CMS)垃圾收集器”)是“已被放置在'在討論和審查后,由所有者將其定位為目標(biāo)”。 如果JEP 291一切順利,它將針對(duì)JDK 9。
Reinhold在此消息中解釋了為何在相對(duì)較晚的日期仍然可以將JEP 291定位到JDK 9:“ JEP 291僅需要微小的代碼更改,即可發(fā)出建議的警告消息。 首先,這是一個(gè)JEP,不是因?yàn)檫@是一個(gè)冒險(xiǎn)的更改,而是為了使計(jì)劃長(zhǎng)期可見(jiàn),以刪除CMS收集器。” 正如這些語(yǔ)句所指出的那樣,JDK 9的針對(duì)性操作只是將并發(fā)標(biāo)記掃描(CMS)收集器標(biāo)記為已棄用,其想法是“從長(zhǎng)遠(yuǎn)來(lái)看”將在某個(gè)時(shí)候?qū)⑵鋭h除。
盡管G1GC是JDK 9到JEP 248的默認(rèn)垃圾收集器 ,但它并不總是適用于所有情況的最佳垃圾收集器。 甚至不建議使用CMS的提議在其“ 風(fēng)險(xiǎn)和假設(shè) ”中也承認(rèn)了這一點(diǎn),其中指出:“對(duì)于某些應(yīng)用程序,CMS非常適合,并且可能永遠(yuǎn)勝過(guò)G1。”
OpenJDK jdk9-dev郵件列表的另一個(gè)最新討論的標(biāo)題為“ JEP 291:棄用并發(fā)標(biāo)記掃描(CMS)垃圾收集器”,其中包含有關(guān)保留CMS的有趣論點(diǎn)。 Christoph Engelbert(Hazelcast) 寫(xiě)道 :“ CMS + ParNew是最常用的解決方案,許多應(yīng)用程序已針對(duì)CMS的行為進(jìn)行了優(yōu)化。” 斯科特·帕爾默( Scott Palmer) 寫(xiě)道 ,“在他的特定應(yīng)用中,“到目前為止,我們發(fā)現(xiàn)CMS收集器的最大暫停時(shí)間比G1短得多”。 Roman Kennke(RedHat) 補(bǔ)充說(shuō) :“我說(shuō)談?wù)搫h除CMS還為時(shí)過(guò)早。 而且,老實(shí)說(shuō),我什至質(zhì)疑過(guò)時(shí)的舉動(dòng)。” Martijn Verburg(jClarity)表示:“我們現(xiàn)在不斷被要求為客戶調(diào)整G1,并且發(fā)現(xiàn),即使使用我們最先進(jìn)的分析(結(jié)合一些常見(jiàn)且更深?yuàn)W的調(diào)整選項(xiàng)),我們也無(wú)法使G1達(dá)到在某些情況下優(yōu)于CMS。 因此,一些客戶已恢復(fù)使用CMS,并且對(duì)CMS的未來(lái)(作為消費(fèi)者)非常感興趣。”
相同的討論還包括不建議使用CMS的原因。 馬克·雷因霍爾德(Mark Reinhold)的帖子指出,JEP 291是“去年夏天發(fā)布的”,并要求提供CMS維護(hù)者,但“到目前為止,沒(méi)有人加緊。” 他總結(jié)說(shuō),“無(wú)論如何,Oracle確實(shí)打算在不遠(yuǎn)的將來(lái)停止維護(hù)CMS,如果沒(méi)有人上任,我們將刪除代碼。”
Jeremy Manson(Google) 解釋了G1GC和CMS當(dāng)前情況的棘手問(wèn)題:
我們決定,在嘗試讓G1做我們需要做的事情之后,以任何一種持續(xù)的方式支持CMS應(yīng)該是最后的選擇。 我們相信,收藏家越少越好。 在過(guò)去的幾個(gè)月中,我們花了一些時(shí)間與Oracle的一些人員進(jìn)行協(xié)調(diào),并進(jìn)行實(shí)驗(yàn)以查看G1是否有可行的前進(jìn)方法。 我們找不到明顯的東西。
這一切的主旨似乎是,許多應(yīng)用程序仍依賴于CMS,并且這些應(yīng)用程序?qū)⒃贘DK 9中顯示棄用警告。CMS垃圾收集器的未來(lái)似乎值得懷疑,但僅在JDK 9中才棄用。何時(shí)真正刪除CMS收集器似乎不太明顯,但我認(rèn)為JDK 10是潛在的“未來(lái)主要版本”,在該版本中,可以終止CMS支持。 再次引用曼森(Google)的話:“簡(jiǎn)短的是:我們?nèi)匀辉敢鉃橹С諧MS做出貢獻(xiàn),但是我們要確保首先對(duì)G1進(jìn)行了盡職調(diào)查。 我們一直認(rèn)為JDK 10的時(shí)間框架足夠長(zhǎng),因此我們不必著急做出此決定。”
使用JDK9中的并發(fā)標(biāo)記掃描垃圾收集器的Java應(yīng)用程序似乎將看到有關(guān)CMS垃圾收集器已棄用的警告消息。 何時(shí)(或是否)根本無(wú)法使用CMS不太明顯,取決于誰(shuí)愿意繼續(xù)支持CMS。
翻譯自: https://www.javacodegeeks.com/2017/04/java-garbage-collectors-will-g1gc-force-cms.html
java gc cms
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java gc cms_Java垃圾收集器:G1GC何时将CMS强制退出?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梁字怎么组词 关于梁的组词简介
- 下一篇: java args_Java命令行界面(