GC垃圾回收

2023/11/25 JVM

# 垃圾回收的区域

img

# GC之引用计数法

img

# GC之复制算法

img img

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

# 使用场景

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

# GC之标记清除压缩算法

# 标记清除

img

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

# 标记清除压缩

img

# 标记清除压缩(改进)

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

# GC算法总结

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

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

年轻代:

  • 存活率低
  • 复制算法

老年代:

  • 区域大:存活率高
  • 标记清除(内存碎片不是太多)+标记压缩混合实现
最近修改于: 2023/11/27 00:41:26
和宇宙温柔的关联
房东的猫