为什么Ruby MRI 2.1可以定义RUBY_GC_OLDMALLOC_LIMIT
和RUBY_GC_MALLOC_LIMIT
?有什么区别?
这是解释此概念的绝佳资源。
简而言之,有两个MALLOC_LIMIT
变量的原因是Ruby 2.1已移至两代垃圾收集器。当堆上较新的高转向物体的内存足迹达到RUBY_GC_MALLOC_LIMIT
时,它会触发一个小的GC事件。当寿命长的对象的大小到达RUBY_GC_OLDMALLOC_LIMIT
时,会触发一个主要的GC事件。