日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

通过微调JVM Garbage Collector减少Java IDE滞后

發布時間:2023/12/3 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过微调JVM Garbage Collector减少Java IDE滞后 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有沒有想過為什么Eclipse / Netbeans會一直暫停一段時間? 特別是在您想向親愛的同事展示代碼中的內容時? 感覺很尷尬和尷尬,不是嗎?

我發現大多數時間由于垃圾收集器的執行而導致IDE暫停。 JVM設計中的微妙元素很少起作用,通常可以使我們的開發人員擺脫內存消耗的困擾,并且大多數人都高興地知道它能很好地完成工作,而在大多數情況下卻忽略了它。 但是,如果我們只是忽略它,運行垃圾收集器的后果可能會讓我們感到驚訝。

簡而言之,當GC運行時,它將暫停應用程序的執行,直到完成釋放內存為止。 對于Java絕對不是第一選擇的實時系統,這肯定是不可接受的。 但是,即使在現代Java IDE確實是非關鍵的大型桌面應用程序中,GC也會使整個應用程序停止運行幾秒鐘。 這可能在一天中發生幾次。 您可以想象,使用IDE之類的生產力工具,只會降低其“生產力”效果。

一種解決方案是進行一些調整:

  • 增加運行IDE的JVM的內存(請注意,這只會降低調用GC的頻率,但會延長單個GC運行的執行時間–從較大的堆中收集垃圾需要更長的時間…)
  • 將默認的GC引擎切換為更并發的引擎,即使在完整GC的一切停止執行之前,它也會嘗試連續收集垃圾

第一個選項是大多數Java程序員所熟知的-只需為MaxPermSize及其系列定義合理的值即可。

但是,第二種選擇不是很為人所知。 關鍵是Oracle Java Hotspot JVM提供了幾種可供選擇的GC引擎。 而且,它們與默認值不同,即使在大型GC執行之間也可以提供連續的垃圾收集,這會減慢一切。

G1垃圾收集器

從Java 7更新4開始,Oracle 在JVM中提供了G1垃圾收集器 。

您可以使用以下命令行參數簡單地啟用它:

-XX:+UseG1GC

G1還有一個有趣的選擇來限制GC處理的時間,因此限制了由于GC導致的暫停時間。

-XX:MaxGCPauseMillis=n

我建議將其設置為2000,因為使用IDE時通常可以接受2秒的暫停。 請注意,這只是G1收集器的一個軟提示-如果GC周期需要更多時間,則不會尊重它,但是在大多數情況下,G1應該尊重它。

有關如何配置G1的更多信息,請參閱Java Hotspot VM G1選項 。

CMS垃圾收集器

在某些基準測試中 ,較舊的CMS收集器優于較新的G1收集器。

您可以使用以下選項來啟用它而不是G1:

-XX:+UseConcMarkSweepGC

特殊的Eclipse調整

GC調整確實有助于提高Netbeans安裝的性能。 但是,老實說,使用Eclipse IDE,GC調整只是優化性能的許多步驟之一,不幸的是,這只是次要的步驟。 有助于做更多事情的是配置方面的調整,例如關閉代碼中的某些驗證,減小控制臺輸出的大小。 就我而言,控制臺輸出凍結了Eclipse,以至于我需要將應用服務器的標準輸出重定向到文件并完全繞過控制臺:(

翻譯自: https://www.javacodegeeks.com/2016/02/decrease-java-ide-lagging-fine-tuning-jvm-garbage-collector.html

總結

以上是生活随笔為你收集整理的通过微调JVM Garbage Collector减少Java IDE滞后的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。