详解gc(垃圾回收)机制五:GC标记-压缩算法
【摘要】 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)