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

举报
仙士可 发表于 2023/06/30 12:23:35 2023/06/30
【摘要】 GC标记-压缩算法gc标记-压缩算法是  详解gc(垃圾回收)机制三:GC复制算法  和  详解gc(垃圾回收)机制四:GC标记-清除算法    结合的产物可以看到,从此章开始,gc算法从一个独立的,变成了多个组合方式的,大多数有着垃圾回收的语言,都是使用了多个gc算法组合进行的gc步骤1:遍历所有的活动对象,并且标记2:设定scan指针,new_address指针,scan找到活动对象之后...

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次堆,成本大

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。