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

seo整站网站推广优化排名wordpress如何设置导航栏

seo整站网站推广优化排名,wordpress如何设置导航栏,不关站备案wordpress 2019,拼多多推广引流软件免费GC GC是自动化内存管理回收机制 虚拟内存函数栈的数据是会根据函数返回而自动销毁的#xff0c;而堆上的数据是不会随着函数自动销毁的#xff0c;堆内数据会随着程序运行而逐渐变大#xff0c;从而导致内存OOM#xff0c;Go语言就用了GC来清理堆上的内存数据。 如何区分…GC GC是自动化内存管理回收机制 虚拟内存函数栈的数据是会根据函数返回而自动销毁的而堆上的数据是不会随着函数自动销毁的堆内数据会随着程序运行而逐渐变大从而导致内存OOMGo语言就用了GC来清理堆上的内存数据。 如何区分垃圾 堆上内存数据不在被栈上和数据段上的引用变量所指向那就一定 是内存垃圾。这个原理称为可达性近似等价于”存活性“ 常见垃圾GC方法 引用计数reference countingphp的GC每个对象都有一个被引用的计数器每被引用一次则被引用对象计数器1当引用对象失效则被引用对象计数器-1当计数器是0时可回收 优点实时性好当计数器变0触发GC清理内存缺点当AB对象是嵌套引用则AB对象的计数器不会变成0导致无法被回收 标记-清除Mark and Sweep(非移动式垃圾回收)每次启动垃圾回收都会暂停当前所有的正常代码执行运行一个扫描线程重新运行系统获得链路通过链路判断对象是否可被触达如果能触发说明对象当前正在被使用不可回收反之没有触达到的对象则认为无用可以回收。 因为GC是清理堆上的数据那么链路分为2种 栈到堆数据段到堆 三色标记法是mark and sweep的优化版,go语言用的此方法 标记-整理 Mark and Compact(移动式垃圾回收)原理和标记清除Mark and Sweep是一样的链路可达性。Mark and Compact会在清理完堆上的内存后将内存重新整合到一起避免内存碎片过多。可是整理肯定会涉及到内存的迁移和栈上数据的重新指向 复制式移动法(移动式垃圾回收)他同Mark and Compact算法他会将堆内存上分成2个一样大小的内存区间(from,to)。原来存在from空间的数据被GC清理后剩余的内存全部存到to空间from内存清空避免内存碎片过多。他也是会涉及到内存的迁移和栈上数据的重新指向并且堆内存只有一半的使用率 分带回收这里不一一介绍了 移动式垃圾回收 及 会移动堆内存空间避免内存碎片过多 非移动式垃圾回收 及 不会移动堆内存空间会有很多内存碎片产生内存浪费 三色标记法(白灰黑) 三种颜色的作用 白需要清理的变量灰还需要进一波往下追踪变量黑追踪完毕不要清理的对象 三色标记法步骤 将内存栈堆数据段上的所有变量标记为白色栈和数据段的变量作为根节点root如果根节点变量是值变量标记为黑色如果是引用变量标记为灰色灰色变量是引用变量他们肯定是会存着堆/栈上的某一个地址。根据这个链路往下查找有3种情况 如果地址上有数据并且是值变量跟节点标记成灰色链路上的所有节点都标记成黑色如果地址上没有数据根节点root上的灰色节点会随着函数返回而释放那剩余的节点都是白色的会被GC标记为要清理的内存 GC协程如何进行释放内存 根据时间片段有多种方式 STWstop the world暂停业务进程GC结束后才继续消费协程增量式垃圾回收多协程并发多协程并行主体并发式STW 多协程并发 STW STWstop the world让程序暂停GC扫描标记标记GCROOTS的对象引用。会阻塞进程让系统有卡顿现象。 增量式垃圾回收 将STW切割成多个时间段让垃圾回收和程序并发执行(交替执行)。但是这个会引起新的问题就是前一个时间段的GC将节点标记成了黑色切换到程序后被变量赋值重新指向了白色导致下一个时间片的GC把白色节点的内存释放导致OOM。 黑指向白的实例 GC段1将一个切片变量a被标记成黑色栈和堆上都是黑色切片是引用变量所以存在数据结构堆内栈存着指针切换到业务程序创建了一个切片变量b(GC默认节点都是白色所以此时b的堆栈都是白色节点)切片变量a的pointer被重新赋值指向切片b的七层数组。此时变量a的栈是黑色堆是白色 强三色不变式解决 增量式垃圾回收时间段GC问题 不允许黑色节点指向白色对象在业务程序修改操作时创建读/写屏障 写屏障在修改对象时通知垃圾回收器记录到一个集合里(hash或者列表)。GC开始写读集合里的数据将集合里的黑色节点变成灰色或者将白色节点变成灰色。这样就可以触发重新扫描到新创建的节点(本该是白色的节点)读屏障 移动式垃圾回收 会移动堆内存空间避免内存碎片过多TODO非移动式垃圾回收 不会移动堆内存空间产生内存浪费不需要读屏障 弱三色不变式解决 增量式垃圾回收时间段GC问题 所有被黑色对象引用的白色对象都处于灰色保护状态. 多线程并发回收 一个线程进行GC其他线程进行业务代码的运行。 考虑点 写屏障被GC的读和业务线程的写同时操作可能会引起读写不一致问题 多线程并行回收 多个线程同一个时间段进行回收。 考虑点 会引发多线程抢占所以又要考虑多线程安全锁如果是移动式垃圾回收还要考虑多个线程对同一个内存进行复制导致内存冗余 主体并发式STW 多协程并发 增量式 在某些特定情况下仍然需要使用Stop-The-WorldSTW来保证线程安全。以下是一些可能需要使用STW的情况 根扫描阶段在垃圾回收的根扫描阶段需要确保所有的根对象都被正确扫描并将其标记为活动对象。为了保证扫描的准确性和一致性可以采用STW来暂停所有用户线程的运行然后执行根扫描操作。内存分配当进行内存分配时需要确保内存分配器的内部数据结构状态的一致性。在某些情况下可能需要通过STW来暂停用户线程并进行内存分配操作以避免并发访问带来的线程安全问题。垃圾回收器的调整和优化在对垃圾回收器进行调整和优化时可能需要使用STW来确保对垃圾回收器的修改不会与正在进行的垃圾回收过程产生冲突。这样可以避免并发访问导致的数据不一致性和错误。 go语言GC具体操作 巨人肩膀 https://blog.csdn.net/weixin_42322309/article/details/106915910?spm1001.2014.3001.5502 https://www.bilibili.com/video/BV1n5411H7qS/?spm_id_from333.999.0.0vd_source6e9548d830b147140ad59cd8010b6e7b
http://www.zqtcl.cn/news/885670/

相关文章:

  • 雄安做网站优化的公司小程序开发公司哪里强
  • 做的网站没有注册国家建设部网站倪虹
  • 中英文网站怎么实现做网站有名的公司
  • 先网站开发后软件开发显示网站运行时间代码
  • 品牌网站制作流程图百度网页版入口页
  • 哪些人需要做网站网站开发工程师 招聘
  • 东莞网站建设多长时间如何将网址提交到一些权重比较高的网站
  • 阳江网站seo公司wordpress建站博客
  • 我想做京东网站淘宝怎么做的wordpress淘宝联盟转链
  • 虚拟钱包对接网站开发视频教程营销型网站建设要懂代码吗
  • 莱州教育网站一站式网站搭建
  • 开发网站开票名称是什么捕鱼游戏网站开发商
  • 我国中小企业网站建设怎样办自己的网站
  • 如何推广自己网站链接通化北京网站建设
  • 小型的游戏网站怎么做WordPress设置作者信息
  • 网站建设师要求关键词优化排名易下拉排名
  • 网站建设步骤及推广方法做网站的公司叫什么
  • 怎么建立自己网站 asp网站做视频流量赚钱
  • 全屏网站宽度域名服务器怎么设置
  • 网站图片切换js代码金融公司网站方案
  • 企业网站开发步骤开源软件开发
  • 建设项目环境影响登记表备案系统网站签署网站建设协议新闻
  • 有的网站在浏览器打不开怎么办最近中国新闻热点大事件
  • 网站模板组件随州网站建设有哪些
  • 网站建设微信版8080端口wordpress
  • 急求聊城网站建设微信网页注册入口
  • 商城网站建站程序网站内链布局
  • 盐城网站建设方案全景旅游网站项目建设
  • 网站备案完电信园林效果图网站
  • 伤豆丁文库网站开发贵州网站备案局