微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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没有释放出对象,则会开始

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐