首頁技術文章正文

如何解決與GC相關的問題?

更新時間:2021-08-04 來源:黑馬程序員 瀏覽量:

IT培訓班

 

一般來講,具體問題具體分析,見招拆招,遇河架橋。要相信問題總沒辦法多。

新生代提升過快問題:

(1)如果頻率太快的話,說明空間不足,首先可以嘗試調大新生代空間和晉升閾值。

(2)如果內存有限,可以

設置 CMS 垃圾收集在老年代占比達到多少時啟動來減少問題發(fā)生頻率(越早啟動問題發(fā)生頻率越低,但是會降低

吞吐量,具體得多調整幾次找到平衡點),參數如下:如果沒有第二個參數,會隨著 JVM 動態(tài)調節(jié) CMS 啟動時間

-XX:CMSInitiatingOccupancyFraction=68 (默認是 68)

-XX:+UseCMSInitiatingOccupancyOnly

1628060357854_GC.jpg

老年代碎片嚴重問題:

(1)如果頻率太快或者 Full GC 后空間釋放不多的話,說明空間不足,首先可以嘗試調大

老年代空間。

(2)如果內存不足,可以設置進行 n 次 CMS 后進行一次壓縮式 Full GC,參數如下:

-XX:+UseCMSCompactAtFullCollection:允許在 Full GC 時,啟用壓縮式 GC

-XX:CMSFullGCBeforeCompaction=n 在進行 n 次,CMS 后,進行一次壓縮的 Full GC,用以減少 CMS 產生的碎片。






猜你喜歡:

什么是IO流?怎樣區(qū)分不同種類的IO流?

緩存和web緩存分別是什么?

Nginx的location配置詳細教程

黑馬程序員java開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!