import{_ as e,c as t,o as a,a4 as o}from"./chunks/framework.Cy9JvDAg.js";const G=JSON.parse('{"title":"2.5.1 - 步进GC（Incremental Garbage Collection）","description":"","frontmatter":{"title":"2.5.1 - 步进GC（Incremental Garbage Collection）","footer":true,"lastUpdated":true,"outline":false},"headers":[],"relativePath":"2.5.1.md","filePath":"2.5.1.md"}'),r={name:"2.5.1.md"},l=o('<h3 id="_2-5-1-步进gc-incremental-garbage-collection" tabindex="-1">2.5.1 - 步进GC（Incremental Garbage Collection） <a class="header-anchor" href="#_2-5-1-步进gc-incremental-garbage-collection" aria-label="Permalink to &quot;2.5.1 - 步进GC（Incremental Garbage Collection）&quot;">​</a></h3><p>在步进模式中，每个GC循环都是一小步一小步地与程序一起交错执行标记-扫描清理。这个模式下的收集器使用三个数字来控制GC循环：<em>GC停步（garbage-collector pause）</em>，<em>GC步进乘数（garbage-collector step multiplier）</em>，以及<em>GC步数（garbage-collector step size）</em>。</p><p><em>GC停步</em>用以控制什么时候收集器才开始一个新的GC循环。收集器会在使用了上次GC时n%的内存后开始新一轮的GC。其值越大则收集器的影响越小。值小于等于100意味着收集器将不会等待而直接开始新一轮循环。值为200则意味着收集器将在只用之前整整两倍内存后才开始一轮新的循环。其默认值是100，最大为1000。</p><p><em>GC步进乘数</em>用以控制相对于内存分配的收集速度，即每分配1KB的内存就标记并扫描多少个元素。值越大则收集器的影响越大，但也会增加步进的大小。你不应当使用小于100的值，因为这会使得收集器太慢以至于收集器永远无法完成一个循环。其默认值是100，最大为1000。</p><p><em>GC步数</em>用以控制每次步进的的大小，具体说来就是在步进执行之前解释可分配的内存数量。这是个对数参数：其值为n表示解释器会在步进之间分配2<sup>n</sup>字节并在步进时做相同大小的清理工作。较大的值（例如60）会使收集器变为一个“世界暂停(stop-the-world)”的（即，非步进的）收集器。其默认值为13，意味着步长约为8KB左右。</p>',5),c=[l];function n(s,_,i,m,p,C){return a(),t("div",null,c)}const g=e(r,[["render",n]]);export{G as __pageData,g as default};
