前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解gc(垃圾回收)机制五:GC标记-压缩算法

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

作者头像
仙士可
发布2022-12-02 14:31:04
3200
发布2022-12-02 14:31:04
举报
文章被收录于专栏:仙士可博客

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

本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/11/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GC标记-压缩算法
    • 步骤
      • 优点
        • 缺点
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档