【发布时间】:2011-02-13 16:25:11
【问题描述】:
我知道GC.enable/disable,但是有什么方法可以更详细地控制 Ruby 1.9 垃圾收集器吗?
在分析我的代码时(使用 perftools.rb),我注意到 GC 代表了总样本的 30%,我想看看是否可以调整 GC 以减少这个数字。是否有任何环境变量或其他方式可以像使用 REE 一样设置堆槽数、malloc 限制等?
【问题讨论】:
我知道GC.enable/disable,但是有什么方法可以更详细地控制 Ruby 1.9 垃圾收集器吗?
在分析我的代码时(使用 perftools.rb),我注意到 GC 代表了总样本的 30%,我想看看是否可以调整 GC 以减少这个数字。是否有任何环境变量或其他方式可以像使用 REE 一样设置堆槽数、malloc 限制等?
【问题讨论】:
是的,简称。
首先,基本常量,定义 GC 行为(显示默认值):
More details about GC, may help
A story from 37signals 伙计们,这可能会对您有所帮助。他们按时使用手动 GC 调用 (GC.start),而不是内存大小,并获得了巨大的提升。
【讨论】:
没有。
无法调整 1.9.0–1.9.2 GC。但是,您可以编译一个自定义 VM,该 VM 使用this patch 公开或多或少与 REE 相同的调整参数。
【讨论】: