JVM垃圾回收流程
2016-09-04 10:18:58 0 举报
登录查看完整内容
JVM垃圾回收流程主要包括标记、清除和整理三个阶段。首先,通过标记阶段,JVM会识别出不再使用的对象,并将它们标记为垃圾。然后,在清除阶段,JVM会回收这些被标记的垃圾对象所占用的内存空间。最后,在整理阶段,JVM会对剩余的对象进行整理,以减少内存碎片,提高内存利用率。整个过程由JVM自动完成,无需人工干预。
作者其他创作
大纲/内容
是否能安全发起Minor GC
对象创建结束
检查Eden空间是否足够
否或者不安全的Minor GC失败
发起Full GC
Minor GC
是
成功
检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小
否
new Object();
查检老年代空间是否足够
是:不安全的
发起FULL GC
是:安全的
是否能触发担保机制
分配担保
老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常会伴随至少一次的 Minor GC(但非绝对的,在 ParallelScavenge 收集器的收集策略里就有直接进行 Major GC 的策略选择过程) 。MajorGC 的速度一般会比 Minor GC 慢 10倍以上。
创建大对象到Old区域
在Eden空间中生成新对象
可以安全的进行Minor GC
准备发起minor GC
分配担保结束
进行冒险的minor GC
检查Eden空间所有存活对象是否小于Old空间的连续空闲空间
Eden
失败
准备发起Minor GC
检查对象是否是大对象
检查是否启用担保机制
新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。
0 条评论
回复 删除
下一页