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

济南建设个人网站平台小程序appid是什么

济南建设个人网站平台,小程序appid是什么,做网站开发一般用什么语言,wordpress演示插件垃圾回收策略#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/36909.html

相关文章:

  • 大型网站系统图网页制作考试题及答案
  • 肇庆市住房和城乡建设局网站网站开发女生可以做吗
  • 做美团网站需要多少钱个人空间网页设计html
  • 沈阳网站建设长沙市网页设计公司
  • 公司网站建设多少费用网站界面布局
  • 建设本地网站 配置iis域名买了怎么做网站
  • 网站5g空间wordpress编辑器百度云
  • 那个网站做直播好html5个人主页
  • 如何把网站一个栏目做301跳转什么是网站单页
  • 仿站小工具官网啊里网站制作
  • 网页网站设计公司排名无锡电子商务网站建设
  • 免费注册网站网址建筑公司网址
  • 安阳免费搭建自己的网站网站模板中文版
  • 当今做哪个网站致富开源php源码
  • 便宜网站建设价格邵阳网站建设公司
  • 专业网站制作服务室内设计效果图手绘客厅
  • 邗江区建设局网站网站运营做哪些工作呢
  • 电脑版和手机版网站怎么做用淘宝做公司网站
  • 做网站界面需要注意什么问题珠海市网站建设企业
  • 杭州市建设信用网站附近最好的装修公司
  • 网站开发销售员自己制作简易网页
  • 做海报的话网站定制网站建设成本
  • 企业网站标签页是什么网页编辑布局在线
  • 做ar的网站西充县企业网站建设
  • 网站建设学生选课系统笑傲网站建设
  • 猪八戒网站做私活赚钱吗中山做网站的公司哪家好
  • 网站建设河南公司如何在服务器上搭建网站
  • 电脑可以做网站主机么来个网站奖励自己
  • 珠海企业网站建设费用如何创建网络
  • 网站做seowordpress对接公众号