一、复制算法
GC 复制算法(Copying GC)是 Marvin L. Minsky 在 1963 年研究出来的算法。说
得简单点,就是只把某个空间里的活动对象复制到其他空间,把原空间里的所有对象都回收
掉。这是一个相当大胆的算法。在此,我们将复制活动对象的原空间称为 From 空间,将
粘贴活动对象的新空间称为 To 空间。
优点:
- 优秀的吞吐量
- 可实现告诉分配
- 不会发生碎片化
- 与缓存兼容 (具有引用关系的对象在内存中是相邻的)
缺点:
- 堆的使用效率低下
- 不兼容保守式GC算法
- 算法是递归实现的
二、Cheney的GC复制算法
Cheney 的 GC 复制算法不是递归地,而是迭代地进行复制。
优点:
算法实现是递推的,不用担心栈溢出。
缺点:
不与缓存兼容