hotspot 垃圾收集器_HotSpot增量Java垃圾收集器
hotspot 垃圾收集器
在我最近的博客文章“ 確定活動(dòng)的HotSpot垃圾收集器”中 ,我描述了可用于確定HotSpot JVM (Java進(jìn)程)正在使用的垃圾收集器(當(dāng)從命令行參數(shù)(標(biāo)志)中變得不明顯時(shí))的不同方法。傳遞給Java啟動(dòng)器 。 對(duì)于重要的Java應(yīng)用程序,我傾向于使用Java啟動(dòng)器顯式指定適當(dāng)?shù)睦占鳂?biāo)志,以免對(duì)使用哪個(gè)收集器產(chǎn)生任何疑問: -XX:+UseParallelGC ( 或 -XX:+UseParallelOldGC )用于并行/吞吐量收集器 , -XX:+UseConcMarkSweepGC用于并行標(biāo)記掃描 (CMS)收集器, -XX:+UseG1GC用于垃圾優(yōu)先垃圾收集器 , -XX:+UseSerialGC用于串行垃圾收集器 。
如果未明確指定所有垃圾收集器JVM標(biāo)志,則虛擬機(jī)將選擇垃圾收集器,并且可以使用JDK命令行工具jcmd或其相關(guān)的JMX MBean實(shí)現(xiàn)DiagnosticCommandMBean (通常通過JConsole)來標(biāo)識(shí)VM選擇了哪個(gè)垃圾收集器。 或VisualVM )。 在某些情況下,由于不存在我之前的列表中存在的特定HotSpot JVM標(biāo)志,所以指定了特定的垃圾收集器。 在本文中,我將簡(jiǎn)要介紹以下內(nèi)容之一: -Xincgc 。
Oracle為Java啟動(dòng)器java提供的JDK工具和實(shí)用程序文檔簡(jiǎn)要描述了-Xincgc 。 Java SE 6的java可執(zhí)行文件和Java SE 7的java可執(zhí)行文件的-Xincgc描述了-Xincgc :“啟用增量垃圾收集器。 增量垃圾收集器(默認(rèn)情況下處于關(guān)閉狀態(tài))將減少程序執(zhí)行期間偶爾出現(xiàn)的長(zhǎng)時(shí)間垃圾收集暫停。 增量垃圾收集器有時(shí)會(huì)與程序并發(fā)執(zhí)行,在此期間將減少程序可用的處理器容量。”
-Xincgc的java文檔狀態(tài)的Java SE 8版本:“啟用增量垃圾收集。 JDK 8中不推薦使用此選項(xiàng),而無需替換。” 從Java 8開始不推薦使用增量收集器,這在《 JDK 8兼容性指南 》的“ 不推薦使用的API ”部分中得到了確認(rèn):“ -Xincgc選項(xiàng)不推薦使用。” 有關(guān)為什么在JDK 8中不贊成使用此垃圾收集組合和其他垃圾收集組合的更多詳細(xì)信息,請(qǐng)參見JEP 173 (“淘汰一些很少使用的GC組合”)和JEP 214 (“刪除JDK 8中不推薦使用的GC組合”)。
看來-Xincgc在JDK 8之后將不可用。對(duì)于支持-Xincgc的JVM版本,一個(gè)問題可能是運(yùn)行增量式垃圾收集器對(duì)于垃圾收集器而言意味著什么。 先前參考的《 JDK 8兼容性指南 》指出,“增量CMS”是現(xiàn)已棄用的“垃圾收集器組合”之一。 還已經(jīng)指出 ,Java 6中的“ -Xincgc簡(jiǎn)單地轉(zhuǎn)換”為“ -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode 。 接下來的兩個(gè)屏幕快照展示了Java 8中小型,簡(jiǎn)單的Java應(yīng)用程序的情況。 第一個(gè)快照描述了在指定和不指定-Xincgc情況下相同可執(zhí)行JAR( -jar )的運(yùn)行。 第二個(gè)快照描述了為同一應(yīng)用程序選擇的不同VM選擇的命令行標(biāo)志,這些標(biāo)志是指定或不指定-Xincgc的結(jié)果。
這些屏幕快照表明, 未指定-Xincgc時(shí),用于此簡(jiǎn)單可執(zhí)行JAR應(yīng)用程序的Java 8 VM選擇并行/吞吐量收集器( -XX:+UseParallelGC ),并選擇帶有附加標(biāo)志的CMS收集器( -XX:+UseConcMarkSweepGC ) -XX:+CMSIncrementalMode時(shí)-Xincgc明確規(guī)定。 還值得指出的是,當(dāng)使用-Xincgc運(yùn)行Java 8 HotSpot Java啟動(dòng)器時(shí),會(huì)顯示一條棄用警告消息(我已強(qiáng)調(diào) ):“ Java HotSpot(TM)64位服務(wù)器VM警告:使用增量CMS是不推薦使用,可能會(huì)在將來的版本中刪除。”
我認(rèn)為值得在與垃圾回收相關(guān)的不贊成使用的JVM標(biāo)志上發(fā)布,因?yàn)榭梢詮拇擞懻撝羞M(jìn)行一些高級(jí)觀察:
- 除了直接指定特定垃圾收集器的HotSpot VM標(biāo)志外,其他標(biāo)志也可以暗示垃圾收集器。
- jcmd工具不僅在不提供JVM標(biāo)志的情況下,而且對(duì)于使用暗示特定收集器的標(biāo)志(例如-Xincgc表示CMS收集器)的情況,都有助于識(shí)別使用哪個(gè)垃圾收集器。 。
- 增量CMS收集器即將消失。 任何考慮升級(jí)到Java 9的人都可能會(huì)發(fā)現(xiàn),應(yīng)謹(jǐn)慎檢查其應(yīng)用程序使用的VM標(biāo)志,以識(shí)別當(dāng)前正在使用增量CMS收集器( -Xincgc )的情況。 如果在Java 8上運(yùn)行,則應(yīng)該已經(jīng)有棄用警告,如本文所展示。
- 這提醒我們,盡管Java和JVM在很大程度上仍是向后兼容的語言和平臺(tái),但某些功能和功能有時(shí)會(huì)被刪除(通常很少使用或存在嚴(yán)重缺陷的功能)。
翻譯自: https://www.javacodegeeks.com/2016/05/hotspot-incremental-java-garbage-collector.html
hotspot 垃圾收集器
總結(jié)
以上是生活随笔為你收集整理的hotspot 垃圾收集器_HotSpot增量Java垃圾收集器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: anti-ddos流量清洗(ddos防攻
- 下一篇: dynamodb java_使用Java