Any recommendation for golang gc tuning resources?

agolangf · · 31 次点击    
<p>I am looking for resources that explains golang garbage collector and how to tune gc.</p> <p>Does golang have the concept of eden and survivor space? And can golang switch gc strategy like concurrent mark sweep vs g1?</p> <hr/>**评论:**<br/><br/>kostix: <pre><ol> <li><p>The concurrent GC has been implemented in 1.5, so see <a href="" rel="nofollow">this</a> and — most importantly — <a href="" rel="nofollow">this design doc</a>.</p> <p>Basically, the only knob controlling the GC is the <a href="" rel="nofollow"><code>GOGC</code>env. variable</a> and its <a href="" rel="nofollow"><code>runtime/debug.SetGCPercent()</code></a> counterpart.</p> <p>You can also force garbage collection with <a href="" rel="nofollow"><code>runtime.GC()</code></a> but note that prior to 1.9 that would be an STW operation.</p></li> <li><p>No, you can&#39;t switch the GC strategy. See <a href="" rel="nofollow">this</a> for backgrounds and the roadmap.</p></li> </ol></pre>natefinch: <pre><p>It would be good to know what problem you&#39;re trying to solve. The garbage collector is intentionally not tweakable. This isn&#39;t java. The default works for the vast majority of cases.</p></pre>ChristophBerger: <pre><p>By pure chance, I just came across <a href="" rel="nofollow">this post</a> that might be of help--scroll down to the section &#34;Tuning the Garbage Collector&#34;, where the author describes how to tweak the GC for a low-memory scenario. </p> <p>TL;DR: The GC only returns those pages to the OS that are unused for 5 minutes. To trigger this more frequently, use the method <code>FreeOSMemory()</code> from the <code>runtime/debug</code>package that forces a GC cycle and returns as much memory to the OS as possible.</p></pre>
31 次点击  
加入收藏 微博
0 回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传