如何避免頻繁fullGC

2021-10-01 22:49:28 字數 333 閱讀 1459

觸發fullgc的條件?

heap區被佔滿,需要**heap空間, 就會執行fullgc

物件生命週期經歷了young(eden, i , ii )到達old

fullgc是對old和young全部gc

此時jvm處於凍結狀態

因此要盡可能的把gc方法young代

所以就應該縮短物件生命週期,避免物件被新增到old代。

縮短物件生命週期

3 . 縮短物件生命週期的方法?

避免大方法

避免乙個變數跨方法呼叫,且被不同方法呼叫。

物件不用了要及時的清空物件, 比如引用變數a,清空a, a=null

頻繁 full gc 處理方式

線上服務 full gc 時,使用下面方式查詢問題 jmap dump live,format b,file dump.hprof x其中 為程序號 wget 修改配置引數,按需要修改使用記憶體大小 startup plugins org.eclipse.equinox.launcher 1.2.0...

快取 避免頻繁操作

int flag 0 int seconds 8 if library.datacache.getcache lock userid null 判斷是否鎖定 library.datacache.setcache lock userid,1,seconds 處理 library.datacache.r...

避免頻繁請求操作

防抖 適用於input輸入框格式驗證 聯絡詞等。待使用者停止輸入一段時間再發生請求,避免頻繁請求。實現細節 debounce返回乙個function,關鍵點在於cleartimeout,如果使用者不停輸入,就會一直執行cleartimeout,導致fn無法執行。只有使用者停止x時間後,才會開始執行f...