图解Golang的GC算法「建议收藏」

图解Golang的GC算法「建议收藏」虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。以下是GolangGC算法的里程碑:v1.1STWv1.3MarkSTW,Sweep并行v1.5三色标记法v1.8hybridwritebarrier经典的GC算法有三种:引用计数(referencecounting)、标记-清扫(mar…

大家好,又见面了,我是你们的朋友全栈君。

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。

以下是Golang GC算法的里程碑:

  • v1.1 STW
  • v1.3 Mark STW, Sweep 并行
  • v1.5 三色标记法
  • v1.8 hybrid write barrier

经典的GC算法有三种:引用计数(reference counting)标记-清扫(mark & sweep)复制收集(Copy and Collection)

Golang的GC算法主要是基于标记-清扫(mark and sweep)算法,并在此基础上做了改进。因此,在此主要介绍一下标记-清扫(mark and sweep)算法,关于引用计数(reference counting)和复制收集(copy and collection)可自行百度。

标记-清扫(Mark And Sweep)算法

此算法主要有两个主要的步骤:

  • 标记(Mark phase)
  • 清除(Sweep phase)

第一步,找出可达的对象,然后做上标记。
第二步,回收未标记的对象。

操作非常简单,但是有一点需要额外注意:mark and sweep算法在执行的时候,需要程序暂停!即stop the world
也就是说,这段时间程序会卡在哪儿。故中文翻译成卡顿

我们来看一下图解:

开始标记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151093.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SMO算法最通俗易懂的解释

    SMO算法最通俗易懂的解释我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~SVM通常用对偶问题来求解,这…

    2022年6月30日
    21
  • iOS_11_tableViewCell使用alertView变更数据

    iOS_11_tableViewCell使用alertView变更数据

    2022年1月2日
    42
  • 微机原理与接口技术第二版答案_南京邮电大学计算机怎么样

    微机原理与接口技术第二版答案_南京邮电大学计算机怎么样本阶段是《微型计算机原理与接口技术》的辅导课程第一阶段。王老师通过对近几年几个知名院校的真题分析,结合了自己多年教学经验,总结了一套对于微型计算机原理与接口技术的应实性课程,考生在学习过程中,既要注意与课本相关的知识点,也同时要注意王老师穿插的应试技巧。凯程考研集训营,为学生引路,为学员服务!考研《微机原理与接口技术》考试大纲西安邮电大学2016考研《微机原理与接口技术》考试大纲科目代码:8…

    2022年10月2日
    6
  • EasyOCR_easyocr语言包

    EasyOCR_easyocr语言包软硬件环境windows1064bitanacondawithpython3.7nvidiagtx1066pytorch1.6easyocr简介EasyOCR是一款用py…

    2025年8月21日
    2
  • Jenkins 安装及使用 ( Jenkins 部署 Maven 项目、Jenkins 部署 Vue 项目)

    Jenkins 安装及使用 ( Jenkins 部署 Maven 项目、Jenkins 部署 Vue 项目)Jenkins安装部署及使用。包括Jenkins部署Vue项目,Jenkins部署Maven项目。

    2022年6月2日
    29
  • 自动滑块验证码识别_滑块验证码原理

    自动滑块验证码识别_滑块验证码原理一、滑块验证码简述有爬虫,自然就有反爬虫,就像病毒和杀毒软件一样,有攻就有防,两者彼此推进发展。而目前最流行的反爬技术验证码,为了防止爬虫自动注册,批量生成垃圾账号,几乎所有网站的注册页面都会用到验证码技术。其实验证码的英文为CAPTCHA(CompletelyAutomatedPublicTuringtesttotellComputersandHumans…

    2025年8月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号