原创

详解gc(垃圾回收)机制五:GC标记-压缩算法

温馨提示:
本文最后更新于 2022年11月28日,已超过 476 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

GC标记-压缩算法

gc标记-压缩算法是  详解gc(垃圾回收)机制三:GC复制算法  和  详解gc(垃圾回收)机制四:GC标记-清除算法    结合的产物

可以看到,从此章开始,gc算法从一个独立的,变成了多个组合方式的,大多数有着垃圾回收的语言,都是使用了多个gc算法组合进行的gc

步骤

1:遍历所有的活动对象,并且标记

仙士可博客

2:设定scan指针,new_address指针,scan找到活动对象之后,将活动对象头信息的forwarding指针设定为new_address,

new_address指针根据活动对象长度移动,scan根据对象长度移动

仙士可博客

仙士可博客

3:再次遍历堆,将活动对象复制到forwarding指针指向处,标记-压缩 过程完成

仙士可博客

优点

1:没有内存碎片化,可以有效的利用堆

缺点

1:压缩算法需要搜索3次堆,成本大

正文到此结束
本文目录