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

网站做聚合是啥意思最新军事新闻 今日 最新消息

网站做聚合是啥意思,最新军事新闻 今日 最新消息,长春seo排名公司,九龙坡区建设二校的网站1.垃圾回收的目的 将未被引用到的对象销毁,回收其所占的内存空间。 2.根对象是什么 全局变量:在编译器就能确定的存在于程序整个生命周期的变量。 执行栈:每个goroutine都包含自己的执行栈,这些执行栈上包含栈上的变量及指向分配…

1.垃圾回收的目的

        将未被引用到的对象销毁,回收其所占的内存空间。

2.根对象是什么

  1. 全局变量:在编译器就能确定的存在于程序整个生命周期的变量。

  2. 执行栈:每个goroutine都包含自己的执行栈,这些执行栈上包含栈上的变量及指向分配的堆内存块的地址。

  3. 寄存器:寄存器的值可能表示一个指针,参与计算的这些指针可能指向某些赋值器分配的堆内存区块。

3.GC回收的过程

GO目前采用的是三色标记法,可以将垃圾回收分为两个阶段:标记阶段和回收阶段

在标记阶段开始的时候,会将所有的对象放置到白色队列中、

之后,从根对象出发扫描所有被引用到的对象,将其放入灰色队列。

然后,从灰色队列中取出待扫描的对象,将其引用到的对象放入灰色队列,并将自身转置到黑色队列中。不断重复这一个步骤,直到灰色队列为空。

标记阶段结束的时候,所有白色对象即为垃圾,是本次GC过程中需要进行回收的。

不过,三色标记法存在缺点,需要在标记阶段停止所有的goroutine,这也就是我们常说的STW。如果用户程序和GC标记并发执行,用户程序可能在标记执行的过程中修改对象的指针,导致将本该死亡的对象标记为存活和本该存活的对象标记为死亡。

为了解决这个问题,go v1.8之后使用混合写屏障技术来支持并发执行。但是仍然会导致程序暂停,不过暂停的的时间缩短至0.5ms以内。

开启写屏障后,指针发生传递和新分配的内存都会进行标记,本轮GC不会回收,下次GC时在确定。虽然写屏障不能完全消除STW,但是可以大大缩短STW的时间。

4.GC触发时机

  1. 内存分配量达到阈值会触发GC

    阈值 = 上次GC内存分配量 * 内存增长额

    在go中的内存增加额由环境变量GOGC控制,默认为100,即内存增长一倍时触发GC

  2. 在堆上创建大于32KB对象的时候,会检测此时是否满足垃圾回收的条件,如果满足则直接进行垃圾回收

  3. 定时触发GC

      默认二分钟开启一次

  4. 主动触发

      程序代码中可以通过runtime.GC()方法主动触发GC

5.GC性能优化

  1. 减少对象分配的个数,采用复用对象或使用大对象组合多个小对象

  2. 在程序开发过程中,尽可能减少内存逃逸现象的发生

http://www.dinnco.com/news/50827.html

相关文章:

  • 怎么做公司招聘网站今日军事头条
  • 个人邮箱注册重庆小潘seo
  • smush.it wordpress滨州seo排名
  • 免费外贸网站在线百度网首页
  • 上海网站建设找摩彼站长之家域名查询排行
  • 保险咨询网站留电话外链发布工具
  • 大连网站建设哪家专业惠州seo排名优化
  • 上弘科技网站建设微信营销的10种方法技巧
  • 网站开发后端是什么磁力蜘蛛搜索引擎
  • 生物科技网站建设 中企动力北京山东seo优化
  • win7做网站服务器营销型网站建设题库
  • 跨平台 移动网站开发广州seo服务公司
  • 快速提升网站排名北京债务优化公司
  • 哪个网站做货车专业中国的网络营销公司
  • 培训的网站建设网站推广一般多少钱
  • 国外设计网站d企业seo排名有 名
  • 窝窝在线观看网站优化网络推广seo
  • 建站 公司河北seo网络优化培训
  • 如何做网站banner外贸营销型网站建设公司
  • wordpress主题幻灯片短视频关键词seo优化
  • 数学老师做直播的网站2021年近期舆情热点话题
  • 百度做公司网站多少钱网站搜索优化排名
  • 怎么做免费网站被收录抖音推广合作方式
  • 用vis做的简单网站搜索引擎推广的方法有
  • java在网站开发上百度地图导航2021最新版
  • 宣传网站建设背景百度打开
  • 上海市网站建设定制开封网站推广
  • 企业网站搭建方案千博企业网站管理系统
  • 广西南宁网站建设2345网址导航设置
  • wordpress管理媒体库插件seo快照推广