为什么Ruby MRI 2.1同时定义了RUBY_GC_OLDMALLOC_LIMIT
和RUBY_GC_MALLOC_LIMIT
?有什么区别?
答案 0 :(得分:3)
这是解释这个概念的great resource。
简而言之,有两个MALLOC_LIMIT
变量的原因是Ruby 2.1已经转移到了两代垃圾收集器。当堆上较新的高转换对象的内存占用量达到RUBY_GC_MALLOC_LIMIT
时,它会触发次要GC事件;当较长寿命对象的大小达到RUBY_GC_OLDMALLOC_LIMIT
时,会触发一个主要的GC事件。