当前位置: 首页 > news >正文

福州做网站fjfzwl陕西seo关键词优化外包

福州做网站fjfzwl,陕西seo关键词优化外包,武汉做网站企业,会计常用的三个软件GO GC 垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。 Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可…

GO GC

垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。

Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop the world),STW的过程中,CPU不执行用户代码,全部用于垃圾回收。

Go1.3采用标记清除法, Go1.5采用三色标记法,Go1.8采用三色标记法+混合写屏障。

标记清除法(mark and sweep)

  • 分为两个阶段:标记和清除

  • 标记阶段:从根对象出发寻找并标记所有存活的对象。

  • 清除阶段:遍历堆中的对象,回收未标记的对象,并加入空闲链表。

  • 缺点:

    • 需要暂停程序(STW)
    • 标记需要扫描整个堆
    • 清除数据会产生堆碎片

三色标记法

  • 将对象标记为白色,灰色或黑色。

  • 白色:不确定对象(默认色);黑色:存活对象。灰色:存活对象,子对象待处理。

  1. 将所有对象加入白色集合
  2. 从根节点开始遍历所有对象,把遍历到的对象从白色集合放入灰色集合
  3. 遍历灰色集合,将灰色对象引用的对象从白色集合放入灰色集合,之后将此灰色对象放入黑色集合
  4. 重复第三步, 直到灰色中无任何对象
  5. 回收白色集合所有的对象
  • 缺点:对象的引用被用户修改了,那么之前的标记就无效
    • 条件1: 一个白色对象被黑色对象引用(白色被挂在黑色下)
    • 条件2: 灰色对象与它引用的白色对象遭到破坏(灰色丢了该白色)
    • 当以上两个条件同时满足时, 就会出现白色对象丢失现象
    • 解决:引入屏障机制

屏障机制

  1. “强-弱” 三色不变式

    • 强三色不变式:不存在黑色对象引用到白色对象的指针
    • 弱三色不变式:所有被黑色对象引用的白色对象都处于灰色保护状态
  2. 插入写屏障

    • 操作:在A对象引用B对象的时候,B对象被标记为灰色
    • 满足:强三色不变式。
    • 注意:在栈空间的对象操作中不使用,仅使用在堆空间对象的操作中
    • 缺点:对栈重新进行三色标记扫描需要STW,直到栈空间的三色标记结束
  3. 删除写屏障

    • 操作:被删除的对象,如果自身为灰色或白色,那么被标记为灰色
    • 满足:强三色不变式
    • 缺点:回收精度低,一个对象即使被删除了最后一个指向它的指针仍可以活过这一轮
  4. 完整的GC分为四个阶段

    • 准备标记(开启STW),开启写屏障。
    • 开始标记
    • 标记结束(停止STW),关闭写屏障
    • 清理(并发)

混合写屏障

  • 解决写屏障问题
  • 注:不在栈上应用,因为要保证栈的运行效率
  1. GC开始:将栈上的对象全部扫描并标记为黑色(之后不再进行第二次重复扫描,无需STW)
  2. GC期间:在栈上创建的新对象标记为黑色、被删除的对象标记为灰色、被添加的对象标记为灰色

总结

  • GoV1.3- 普通标记清除法,整体过程需要启动STW,效率极低。

  • GoV1.5- 三色标记法, 堆空间启动写屏障,栈空间不启动,全部扫描之后,需要重新扫描一次栈(需要STW),效率普通

  • GoV1.8-三色标记法,混合写屏障机制, 栈空间不启动,堆空间启动。整个过程几乎不需要STW,效率较高。

参考文章:Golang 垃圾回收

http://www.khdw.cn/news/31854.html

相关文章:

  • 网站开发做原型吗成人电脑速成培训班
  • 专门做孩子早教的网站百度云在线登录
  • 西安做网站广告的公司网页制作代码
  • 塘沽网站建设优化seo快速排名软件方案
  • 珠海做网站优化免费自助建站网站
  • 网站开发的三层架构网络营销培训课程
  • 网站错误404青岛seo网站推广
  • 哪里有专做水果的网站网站搭建外贸
  • 软件工程开发流程seo关键词
  • 网站的横幅怎么做的正规推广赚佣金的平台
  • 珠海市住房和城乡建设部网站全球十大搜索引擎
  • 深圳网站建设注册关键词批量调词软件
  • 北京广告长春seo网站排名
  • 网站的建设流程图互联网推广方案怎么写
  • 建设网站证书如何提高网站排名seo
  • 网站手机版怎么弄网络营销seo是什么意思
  • 公司做网站流程seo提升关键词排名
  • 建行深圳网站慈溪seo
  • 遵义网站建设做个网站
  • 5118站长工具北京网站建设公司哪家好
  • 做网站和彩票的同步开奖怎么做域名seo站长工具
  • 政府部门网站建设要求学做网站培训班要多少钱
  • 做超市促销海报哪个网站好网络营销经典案例
  • 个人网站的内容网址大全浏览器app
  • 玉溪网站开发百度一下官网页
  • 免费软件网站建设万网域名查询接口
  • 学编程多少钱学费seo外包服务
  • 长宁区建设交通委员会网站一个企业该如何进行网络营销
  • 常州百度网站排名苏州seo怎么做
  • 自己做的网站怎么接入微信教育机构在线咨询