转自 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