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

怎么建立免费个人网站台州优秀关键词优化

怎么建立免费个人网站,台州优秀关键词优化,中小企业建网站哪个好,盐亭县建设局网站垃圾回收策略#xff08;Garbage Collection#xff0c;GC#xff09;用于回收不再使用的内存#xff0c;避免系统的内存被占满。Go1.3之前采用标记清除法#xff0c; Go1.3之后采用三色标记法#xff0c;Go1.8采用三色标记法混合写屏障。 前置概念#xff1a; 1#x…        垃圾回收策略Garbage CollectionGC用于回收不再使用的内存避免系统的内存被占满。Go1.3之前采用标记清除法 Go1.3之后采用三色标记法Go1.8采用三色标记法混合写屏障。 前置概念 1根对象应用程序中可以直接或间接访问的对象主要包括 全局变量在程序编译期间就能确定全局变量存在于程序的整个生命周期执行栈Go语言中协程是分配在堆上每个协程都含有自己的执行栈寄存器寄存器的值可能表示一个指针这些指针可能指向某些赋值器分配的堆内存区 2STW(Stop-The-World)系统在执行特定操作时暂停所有应用程序线程直到某个特定的事件发生或处理完成。 1. 标记清除法 具体步骤 1首先从根对象出发标记所有可达对象。 这一过程通常使用深度优先搜索或广度优先搜索进⾏。标记的方式通常是将对象的标记位从未标记改为已标记。 2在清扫阶段遍历整个堆内存将未被标记的对象视为垃圾即不再被引用。所有未被标记的对象都将被回收它们的内存将被释放以便后续的内存分配。 标记清除算法执行完清扫阶段后可能会产生内存碎片即一些被回收的内存空间可能是不连续的。为了解决这个问题一些实现中可能会进行内存碎片整理。 总结 标记清除算法的主要优势是能够回收不再使用的内存但它也有一些缺点其中主要的缺点是清扫阶段可能会引起一定程度的停顿因为在这个阶段需要遍历整个堆内存。另外由于标记清除算法只关注“存活”和 “垃圾”两种状态不涉及内存分配的具体位置可能导致内存碎片的产生。 2. 三色标记法 三色标记是指将对象分为三种颜色白色、灰色、和黑色。 1白色代表最终需要清理的对象内存块 2灰色待处理的内存块 3黑色活跃的内存块 具体步骤 1初始时所有对象都被标记为白色表示它们都是未被访问的垃圾对象。 2根搜索从根对象开始搜索所有根对象被标记为灰色表示它们是待处理的对象。 3标记阶段从灰色对象开始垃圾回收器遍历对象的引用关系将其引用的对象标记为灰色然后当前该对象标记为黑色。重复这一步骤直到所有可达对象都被标记为黑色。 4清扫阶段在标记完成后垃圾回收器会扫描堆中的所有对象将未被标记的对象回收释放其内存。这些未被标记的对象被认为是不可达的垃圾。 5内存返还垃圾回收完成后系统中的内存得以回收并用于新的对象分配。 总结 1优点在标记阶段垃圾回收器采用并发标记的方式与程序的执行同时进行。这意味着程序的执行不会因为垃圾回收停顿减小了对程序性能的影响。 2缺点如果对象的引用被用户修改了那么之前的标记就⽆效了。         3垃圾回收的触发条件通常是在分配新对象时如果达到⼀定的内存分配阈值就会触发垃圾回收。 另外⼀些特定的事件如系统调用、网络阻塞等也可能触发垃圾回收。        3. 三色标记法混合写屏障 屏障技术可以理解为一种回调机制在程序的某种执行过程中加一个判断机制满足判断机制则执行回调函数类似于钩子函数Hook。 实际上垃圾回收机制只用于回收堆上的内存栈中的内存如局部变量、函数调用等会在调用结束后自动释放。也就是说屏障机制只能作用于堆对象。屏障机制分为插入写屏障和删除写屏障 插入写屏障实现了强三色不变性给对象添加引用关系时触发删除写屏障实现了弱三色不变性删除对象引用关系时触发 强三色不变性强制性的不允许黑色对象引用白色对象弱三色不变性允许黑色对象引用白色对象但是白色对象必须存在其他灰色对象对它的引用。 插入写屏障每当一个对象被引用就会触发判断如果这次操作是一个白色对象被黑色对象引用就把这个白色对象标记为灰色 删除写屏障每当一个对象被删除时就会触发判断如果是一个灰色对象引用的白色对象被删除那么就把这个白色对象标记为灰色 插入写屏障和删除写屏障都有各自的短板 插入写屏障结束时需要 STW标记清除重新扫描栈 删除写屏障回收精度低在开始时需要 STW 扫描整个堆栈记录初始快照 基于插入写屏障和删除写屏障在结束时需要STW来重新扫描栈带来性能瓶颈。混合写屏障分为以下四步: GC开始时将栈上的全部对象标记为黑色不需要二次扫描无需STW GC期间任何栈上创建的新对象均为黑色  被删除引用的对象标记为灰色  被添加引用的对象标记为灰色 因此一次完整的GC分为四个阶段 准备标记需要STW开启写屏障。开始标记标记结束STW关闭写屏障清理并发 总结 标记清除法需要一次全局 STW先标记可达对象再清除所有的不可达对象性能很差 三色标记法身无法在并发条件下正确执行单独使用也需要 STW 才能保证正确性 为了优化这一过程避免全局 SWT引入了插入写屏障插入写屏障是一种触发机制每当一个对象被引用时如果是黑色对象引用白色对象就把这个白色对象置灰但是由于屏障机制无法作用到栈对象为了避免与栈相关的活跃对象被错误回收需要在三色标记法结束后对栈做一次 STW清除掉垃圾对象插入写屏障虽然优化了全局 SWT但是每次GC也需要对栈上的一次 STW 为了解决这一问题最终的方案是混合写屏障混合写屏障的触发机制有两个被删除的对象会被标记为灰色被添加的对象会被标记为灰色同时在开始时会把栈上所有可达对象置黑栈上对象被创建时也会置黑。这样就记录了栈上的对象状态避免了错误回收活跃对象 混合写屏障结合了插入写屏障和删除写屏障的优点避免了在插入写屏障结束后需要进行全栈扫描的性能问题实现了更高效的垃圾回收机制。 参考代码随想录、Go语言的垃圾回收机制图文并茂 一篇搞懂_go垃圾回收-CSDN博客
http://www.dnsts.com.cn/news/212259.html

相关文章:

  • 虚拟主机和服务器有什么区别对新网站做seo大概需要多久
  • 学校户网站建设方案青岛建设项目
  • 无锡网站设计厂家万网个人网站建设教程
  • 洛阳市涧西区建设局网站重庆建站程序
  • 网络服务商不提供哪项服务婚纱摄影网站seo方案
  • 最新网站建设广东炒股配资网站开发
  • 服务器买好了怎么搭建自己的网站做网站赚钱方法
  • 蓝天下品牌运营业务展示如何做优化网站排名
  • h5微信网站建设网站模板修改教程
  • 做网站基本临沂做过网站的公司
  • 玉树wap网站建设公司中装建设集团董事长
  • 可建网站开一个建筑模板厂需要多少钱
  • 电商网站建设与运营实训网站怎么快速做收录
  • 包头移动的网站建设如何查询一个网站是否备案
  • wordpress网站上传到服务器唯美网站建设
  • 织梦手机网站模板删除不了优化大师下载旧版本安装
  • 流放之路做长老环的网站网站开发的实例教程
  • 广州网站推广策划案专业搭建网站公司
  • 建设单位网站开发软件app需要多少钱
  • 服务专业的公司网站设计成都策划公司排名
  • 优秀vi设计网站佛山建设专业网站
  • 深圳高端网站制作四川网站建设 湖南岚鸿
  • 网站做语言切换网页设计的好处
  • 重庆专业网站推广公司wordpress腾讯视频插件下载
  • 企业网站备案流几天小程序搭建步骤
  • 乾安网站建设对于职业规划做的好的网站
  • metro网站模板树品营销拓客平台系统
  • 网站海报做一张多少钱漯河有没有做网站的
  • 网站域名找回密码 用户名网站建设的大功效
  • 有哪些网站做的很好网络营销是什么工作