ParNew+CMS 垃圾收集器下 年轻代及存活对象晋升老年代 规律

S:Survivors  

E:Eden

O:Old

如果 Eden 满了(触发一次MinorGC, 其中存活的对象)年轻代处理过程如下:

1.如果 S 相同年龄对象的总大小 > S 区总大小的 50%, 这些对象以及年龄大于这些对象的对象, S 区中这些对象将全部移动到 O 区.(只要触发 MinorGC 该条件处理过程必然触发)


2.如果条件 1 不成立, 原有 S 区这些对象全部继续保存在 S 区中, 如果原有 S 区剩余空间足够存放这批存活的对象, 那么存活对象进入 S 区.(处理结束)


3.如果条件 1 不成立,  原有 S 区这些对象全部继续保存在 S 区中, 如果原有 S 区剩余空间不足够存放这批存活的对象, 且这批对象的总大小 < S 区总大小, 那么原有 S 区所有对象移动到 O 区. 这批存活对象进入 S 区.(存活对象进入 S 区按空间申请先后,处理结束)

以 S 区总大小为 1024K 为例, 在同一次 E 区垃圾回收中存活的对象如下:

            |-  50K
            |-  300K

E 存活  |-  300K

            |-  500K

            |_  100K

由于 500K + 上面的 650K > 1024K, 顾 500K 直接进入 O 区.最后 100K + 上面的 650K < 1024K, 顾最终结果 S 区大小为 750K.


4.如果这批存活对象中某个大小 > S 区总大小, 那么这个对象直接进入 O 区.(处理结束)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值