Skip to content

垃圾回收的区域

img

GC之引用计数法

img

GC之复制算法

imgimg

  • 好处:没有内存的碎片。
  • 坏处:浪费了内存空间(多了一半空间to永远是空)。假设对象100%存活(极端情况),不适合使用复制算法。

使用场景

复制算法最佳使用场景:对象存活度较低的时候(新生区)

GC之标记清除压缩算法

标记清除

img

  • 优点:不需要额外的空间。
  • 缺点:两次扫描,严重浪费时间,会产生内存碎片。

标记清除压缩

img

标记清除压缩(改进)

可以进行多次标记清除,再进行一次压缩。

GC算法总结

内存效率:复制算法>标记清除算法>标记压缩算法(时间复杂度) 内存整齐度:复制算法=标记压缩算法>标记清除算法 内存利用率:标记压缩算法=标记清除算法>复制算法

思考一个问题:难道没有最优算法吗? 答案:没有,没有最好的算法,只有最合适的算法——》GC:分代收集算法

年轻代:

  • 存活率低
  • 复制算法

老年代:

  • 区域大:存活率高
  • 标记清除(内存碎片不是太多)+标记压缩混合实现

Released under the MIT License.