Ruby垃圾收集堆插槽大小

时间:2010-10-04 00:52:28

标签: ruby garbage-collection

因此,ruby企业文档指出GC设置中的所有值都在插槽中定义:http://www.rubyenterpriseedition.com/documentation.html#_garbage_collector_performance_tuning

(例如RUBY_HEAP_MIN_SLOTS)

我们通过反复试验调整了应用程序的最小插槽大小和增量以获得最佳性能(我们有足够的机器来了解不同的值如何影响malloc调用和Full GC的数量)。

但有些事情一直困扰着我:1个字节的字节有多大?

4 个答案:

答案 0 :(得分:4)

来自Ruby来源:

 *  sizeof(RVALUE) is
 *  20 if 32-bit, double is 4-byte aligned
 *  24 if 32-bit, double is 8-byte aligned
 *  40 if 64-bit

答案 1 :(得分:3)

$ rvm use ruby-1.9.2-p136
$ gdb ruby
(gdb) p sizeof(RVALUE)
$1 = 40

答案 2 :(得分:1)

1.9中的默认值是8K

http://svn.ruby-lang.org/repos/ruby/trunk/gc.c (搜索HEAP_SIZE)

请注意,每当空间不足并需要重新分配时,在1.9中它会分配更多的堆。

在1.8中它会分配越来越大的堆。

答案 3 :(得分:1)

通过代码挖掘后:

1 slot的大小为sizeof(struct RVALUE),具体取决于计算机。