觸發Full GC,請參考https://blog.51cto.com/11009785/2399498
Full GC頻繁的原因:
1. 年老代空間比較小
解決方法:第一,增大年老代空間。第二:使用CMS GC,對年老代進行回收,減少full gc發生的幾率。
2. 調用了System.gc()
解決方法:-XX:+DisableExplicitGC? ?忽略手動調用GC, System.gc()的調用就會變成一個空調用,完全不觸發GC
備注:
如何定位調用System.gc()的代碼呢?
如果是System.gc()引起的頻繁Full GC,jstack線程堆棧應該能看到一些信息。
jstack:查看某個Java進程內的線程堆棧信息
jstack可以定位到線程堆棧,根據堆棧信息我們可以定位到具體代碼,所以它在JVM性能調優中使用得非常多。
備注1:展示的信息中,重點關注自己編寫的代碼,截圖給開發
備注2:有可能一次jstack不能捕捉到需要的信息,那么需要多次執行,因為抓的是那一瞬間的狀態
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。