垃圾回收的算法与实现学习笔记六、GC标记-清除算法 优缺点

一、优点
1、算法简单、容易实现
2、与保守式GC 算法兼容
1)清除算法不会移动对象,所以非常适合搭配保守式算法。

二、缺点
1、清除算法的使用过程中会逐渐产生被细化的分块,不久后就会导致无数的小分块散布在堆的各处。
在这里插入图片描述

1)发生碎片化,那么即使堆中分块的总大小够用,也会因为一个个的分块都太小而不能执行分配。
2)如果发生碎片化,就会增加 mutator 的执行负担。

2、GC 标记 - 清除算法中分块不是连续的,因此每次分配都必须遍历空闲链表,找到足够大的分块。最糟的情况就是每次进行分配都得把空闲链表遍历到最后。

3、与写时复制技术不兼容