轉自 https://www.jianshu.com/p/be5389ca93f7優化
FullGC這麼恐怖,有辦法緩解麼,或者說盡可能避免它在白天,甚至業務高峯期出現?有!筆者給你分享一個歪門邪道,不記得是多少年前,在哪裏道聽途說才獲得這個偏方的,並且聽說之前阿里的一些業務也用了這個偏方,無論是哪裏得來的偏方,反正確定有用的。這個偏方很簡單:在業務最低峯期(好比大陸的不少業務能夠選在凌晨2,3點夜深人靜的時候)強行觸發FullGC(須要結合參數-XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0
,這兩個參數默認值就是這樣的,表示觸發FullGC時壓縮堆),從而優化內存碎片並壓縮堆,下降在業務高峯期發生FullGC的機率(只能下降,不能杜絕)。code
可能還有一小部分同窗連強行觸發FullGC都不知道,筆者好人作到底,送佛送到西:內存
# 沒有開啓-XX:+DisableExplicitGC的前提下調用System.gc()就會發生FullGC System.gc(); 或者經過jmap命令觸發: # jmap -histo:live pid