`RUBY_GC_OLDMALLOC_LIMIT`和`RUBY_GC_MALLOC_LIMIT`有什么区别?

时间:2014-01-27 14:11:03

标签: ruby garbage-collection malloc ruby-2.1

为什么Ruby MRI 2.1同时定义了RUBY_GC_OLDMALLOC_LIMITRUBY_GC_MALLOC_LIMIT?有什么区别?

1 个答案:

答案 0 :(得分:3)

这是解释这个概念的great resource

简而言之,有两个MALLOC_LIMIT变量的原因是Ruby 2.1已经转移到了两代垃圾收集器。当堆上较新的高转换对象的内存占用量达到RUBY_GC_MALLOC_LIMIT时,它会触发次要GC事件;当较长寿命对象的大小达到RUBY_GC_OLDMALLOC_LIMIT时,会触发一个主要的GC事件。