参考 https://segmentfault.com/a/1190000015605327#articleHeader26

  • 如果有perm gen的话(jdk1.8就没了),要给perm gen分配空间,但没有足够的空间时,会触发full gc。
    • 所以看看是不是perm gen区的值设置得太小了。
  • System.gc()方法的调用
    • 这个一般没人去调用吧~
  • 当统计得到的Minor GC晋升到旧生代的平均大小大于老年代的剩余空间,则会触发full gc(这就可以从多个角度上看了)
    • 是不是频繁创建了大对象(也有可能eden区设置过小)(大对象直接分配在老年代中,导致老年代空间不足--->从而频繁gc)
    • 是不是老年代的空间设置过小了(Minor GC几个对象就大于老年代的剩余空间了)