增量垃圾回收算法原理

增量GC旨在解决全量GC的长停顿问题,通过每次处理一小部分对象来减少暂停时间。它分为标记和清理两个阶段。在标记阶段,垃圾回收器识别并标记活跃对象;在清理阶段,未被标记的对象被视为垃圾进行回收。这个过程通过维护S和U列表来跟踪对象状态,逐步完成垃圾的识别。
摘要由CSDN通过智能技术生成

为啥写这篇文章

最近面试的时候面试官会问些GC(Garbage Collection)的问题,除了标记清除比较好说之外,感觉其他的都比较难说清除,真是急煞我也。

想了好久,觉得之所以标记清除之所以比较好理解是因为讲述者的比喻非常形象:“给每个客人发一张卫生纸(别想多了),然后记录下客人的名单,要回收的时候就去问客人需不需要,把需要的标记成1,不需要的标记为0,然后逐个回收不需要的卫生纸”,多清晰!至于客人需不需要,那就是怎么遍历的问题啦,而标记是为了解决陷入询问死循环的问题(比如一个客人B说A需要我就需要,而A也说B需要我就需要,所以有必要标记一下这个人有没有问过,问过了就不问了!)。


那么增量GC又是什么东西呢?它有啥特殊的本领?

首先增量GC是一种GC(废话),它的存在是为了解决标记清除的长停顿问题(就是由于垃圾太多,虚拟机大哥清理了好久都没干完,不能腾出空来干正事)。

它有一个原则:

  • 垃圾永远是垃圾,不管GC跑了几遍都是垃圾


还有一个策略:

新生的对象不是垃圾

当虚拟机访问一个对象的时候,该对象及其相关的对象不是垃圾。


那具体是怎么操作的呢?

增量GC名称的由来跟全量GC相对,就是每次只处理一小部分的对象。具体还是分为标记阶段和清除阶段来阐述。

1.标记阶段

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值