FULL GC频繁原因

Full GC频繁原因排查:https://blog.csdn.net/wilsonpeng3/article/details/70064336
出发full gc的条件:

  1. 程序执行了System.gc() //建议jvm执行fullgc,并不一定会执行
  2. 执行了jmap -histo:live pid命令 //这个会立即触发fullgc
  3. 在执行minor gc的时候进行的一系列检查
    执行Minor GC的时候,JVM会检查老年代中最大连续可用空间是否大于了当前新生代所有对象的总大小。
    如果大于,则直接执行Minor GC(这个时候执行是没有风险的)。
    如果小于了,JVM会检查是否开启了空间分配担保机制,如果没有开启则直接改为执行Full GC。
    如果开启了,则JVM会检查老年代中最大连续可用空间是否大于了历次晋升到老年代中的平均大小,如果小于则执行改为执行Full GC。
    如果大于则会执行Minor GC,如果Minor GC执行失败则会执行Full GC

你可能感兴趣的:(性能测试)