垃圾回收算法与实现系列-GC 标记-清除算法

本文详细介绍了GC标记-清除算法的原理,包括标记、清除、分配和合并四个阶段。虽然实现简单,与保守GC算法兼容,但存在碎片化、分配速度慢以及不兼容写时复制技术等问题。通过对内存管理策略的探讨,分析了算法的优缺点,并指出其在实际应用中的优化方向。

导语
  在GC 中最重要的算法就是GC标记-清除算法(Mark-Sweep GC)。在很多的场景下都还是在使用这个算法来进行垃圾回收操作。就如如同它的名字一样先标记,然后清除。下面就来看看标记清除算法到底如何实现。

什么是GC标记-清除算法

  GC标记清除是由两个阶段构成的,一个是标记阶段,就是把所有活跃对象都进行相应的标记,另一个是清除阶段,是把所有那些没有进行标记的对象,也就是所说的非活跃对象进行回收。通过这两个阶段的操作,就可以让不能被利用的内存空间重新得到利用。但所带来的的问题就是内存碎片化,为了解决这个问题就出现了标记复制算法,这个算法在其他博客中会进行分享。

  根据标记清除算法的描述,它的两个阶段,分别由下面两个步骤组成。标记清除的伪代码如下。

mark_then_sweep(){
   
   
	frist_mark_phase();//先标记
	then_sweep_phase
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值