本文出自《垃圾回收算法与实现》的内容。给自己的一个整理与巩固加深印象
垃圾回收的算法种类:
这是最简单的垃圾回收算法,标记其活动的对象,然后搜索其没有标记的剩余对象(指向空闲链表的对象)删除。其复杂度为 $$ O_(n) = 标记阶段(活动对象)的时间 + 清除阶段的时间 $$ 优点:1. 可即刻回收垃圾。2.最大暂停时间短。3. 没有必要的指针查询
缺点:1. 计数器的增减处理频繁。2.计数器本身需要占很多位。3.实现细节繁琐复杂。4.循环引用无法回收
总共分为四种颜色:
- 黑色,表示活动的对象
- 白色,表示垃圾对象
- 灰色,表示搜索过程完成的对象
- 阴影,表示可能存在循环引用对象
这四种颜色状态可以用 2 位来表示:00,01,10,11
// TODO: 未完待续