zoukankan      html  css  js  c++  java
  • Golang GC

    Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 三色并发标记清理算法。非分代:不像Java那样分为年轻代和年老代,自然也没有minor gc和maj o gc的区别。非紧缩:在垃圾回收之后不会进行内存整理以清除内存碎片。写屏障:在并发标记的过程中,如果应用程序(mutator)修改了对象图,就可能出现标记遗漏的可能,写屏障就是为了处理标记遗漏的问题。三色:将GC中的对象按照搜索的情况分成三种:
    1. 黑色: 对象在这次GC中已标记,且这个对象包含的子对象也已标记
    2. 灰色: 对象在这次GC中已标记, 但这个对象包含的子对象未标记
    3. 白色: 对象在这次GC中未标记
    4. 并发
    5. :可以和应用程序(mutator)在一定程度上并发执行。
    6. 标记清理
    7. :GC算法分为两个大步骤:标记阶段找出要回收的对象,清理阶段则回收未被标记的对象(要被回收的对象)
    触发时机
    • gcTriggerAlways: 强制触发GC,没找到什么情况下使用这个
    • gcTriggerHeap: 当前分配的内存达到一定值(动态计算)就触发GC
    • gcTriggerTime: 当一定时间(2分钟)没有执行过GC就触发GC
    • gcTriggerCycle: 要求启动新一轮的GC, 已启动则跳过, 手动触发GC的runtime.GC()会使用这个条件
  • 相关阅读:
    主要用到 DELPHI XE 10.2新增HASH函数
    个人使用Onenote和Evernote对比
    OneNote和Evernote的特征
    allure的HTML报告信息解疑
    记:ModuleNotFoundError: No module named 'pip'
    用例需注意的点
    Selenium Builder
    定位到元素后可进行的操作事件
    基本定位方法
    webdriver的基本操作
  • 原文地址:https://www.cnblogs.com/tsxylhs/p/15047505.html
Copyright © 2011-2022 走看看