因此,ruby企业文档指出GC设置中的所有值都在插槽中定义:http://www.rubyenterpriseedition.com/documentation.html#_garbage_collector_performance_tuning
(例如RUBY_HEAP_MIN_SLOTS)
我们通过反复试验调整了应用程序的最小插槽大小和增量以获得最佳性能(我们有足够的机器来了解不同的值如何影响malloc调用和Full GC的数量)。
但有些事情一直困扰着我:1个字节的字节有多大?
答案 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)
,具体取决于计算机。