GC触发条件
GC类型 | 触发条件 | 触发时发生了什么 | 注意 | 查看方式 |
YGC | eden空间不足(jvm无法为新对象分配空间) | 清空Eden+from survivor中所有no ref的对象占用的内存 重新调整Eden 和from的大小(parallel GC会触发此项) | 全过程暂停应用 是否为多线程处理由具体的GC决定 | jstat –gcutil gc log |
FGC | 1,old空间不足 2,perm空间不足 3,显示调System.GC, 4, RMI等的定时触发 5,YGC时的悲观策略dump live的内存信息时(jmap –dump:live) | 清空heap中no ref的对象 permgen中已经被卸载的classloader中加载的class信息 如配置了CollectGenOFirst,则先触发YGC(针对serial GC) 如配置了ScavengeBeforeFullGC,则先触发YGC(针对serial GC) | 全过程暂停应用 是否为多线程处理由具体的GC决定 是否压缩需要看配置的具体GC | jstat –gcutil gc log |