minor GC 过程解析

1 篇文章 0 订阅

minor GC 是发生在堆内存-新生代中的GC,过程如下:(图片来自文献,侵删)

 

1.首先,所有新创建对象放在eden区域,两个survivor区域开始为空。

 2.当新创建的对象将eden区域装满,一次minor GC 被触发。

3.存活对象被移动到第一块survivor 区域(S0),不存活对象随着eden区域的清理而被删除。

4.下一次minor GC ,eden区域和上次一样,存活对象被移动到survivor区域,不存活对象被清理删除,和上次不同的是,这次存活对象被移动到另一个survivor区域(S1)。另外,S0中上次minor GC的幸存对象,年龄+1,然后被一起移动到S1区域。一旦所有的幸存对象都被移动到S1,S0和eden区域都会被清理掉。注意此时S1区域有不同年龄的幸存对象。

5.下一次minor GC,和之前的一轮一样。不同的是,这一次S0和S1变换了角色,存活的对象被移动到S0,上次幸存的对象年龄+1,eden和S1区域被清空。

 

to be continue....

 

 

参考文献:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值