觸發(fā)Full GC,請參考https://blog.51cto.com/11009785/2399498
成都創(chuàng)新互聯(lián)成立與2013年,先為青原等服務建站,青原等地企業(yè),進行企業(yè)商務咨詢服務。為青原企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
Full GC頻繁的原因:
1. 年老代空間比較小
解決方法:第一,增大年老代空間。第二:使用CMS GC,對年老代進行回收,減少full gc發(fā)生的幾率。
2. 調(diào)用了System.gc()
解決方法:-XX:+DisableExplicitGC? ?忽略手動調(diào)用GC, System.gc()的調(diào)用就會變成一個空調(diào)用,完全不觸發(fā)GC
備注:
如何定位調(diào)用System.gc()的代碼呢?
如果是System.gc()引起的頻繁Full GC,jstack線程堆棧應該能看到一些信息。
jstack:查看某個Java進程內(nèi)的線程堆棧信息
jstack可以定位到線程堆棧,根據(jù)堆棧信息我們可以定位到具體代碼,所以它在JVM性能調(diào)優(yōu)中使用得非常多。
備注1:展示的信息中,重點關(guān)注自己編寫的代碼,截圖給開發(fā)
備注2:有可能一次jstack不能捕捉到需要的信息,那么需要多次執(zhí)行,因為抓的是那一瞬間的狀態(tài)