其他分享
首页 > 其他分享> > JVM-GC

JVM-GC

作者:互联网

字节码执行引擎发起minorGC和

堆区分为年轻代(1/3大小)和老年代(2/3大小)

年轻代分为:Eden区(8/10),survivor0区(1/10),survivor1区(1/10)

GC的判断方:从方法区去找静态变量,从栈区找局部变量,看到有引用的为非垃圾对象

minorGC:

数据首先放在eden区,放满后触发minor gc,把非垃圾对象放入s0区,其他对象释放。

每经历一次gc未被释放,数据分代年龄+1。

下一次eden区放满,会同时清理eden区和s0区的数据,将有引用的放入s1区,数据年龄+1

数据在eden区+s0以及eden区+s1区来回切换

在年轻代年龄达到15(可调参数)之后会移步到老年代,(用jvisualvm可以看到gc过程)

fullGC:

老年区满之后回触发fullGC,会回收整个堆和方法区。

OOM:

如果fullGC没有释放出对象,则会开始

 

标签:10,eden,s1,s0,fullGC,gc,JVM,GC
来源: https://www.cnblogs.com/wupeiyao/p/14798972.html