В чем разница между `RUBY_GC_OLDMALLOC_LIMIT` и`RUBY_GC_MALLOC_LIMIT`?
Почему Ruby MRI 2.1 определяет оба RUBY_GC_OLDMALLOC_LIMIT
а также RUBY_GC_MALLOC_LIMIT
? В чем разница?
1 ответ
Решение
Вот большой ресурс, чтобы объяснить эту концепцию.
Короче говоря, причина в том, что есть два MALLOC_LIMIT
Переменные заключается в том, что Ruby 2.1 перешел на сборщик мусора двух поколений. Когда объем памяти новых объектов с высоким оборотом в куче достигает RUBY_GC_MALLOC_LIMIT
запускает незначительное событие GC; когда размер долгоживущих объектов достигает RUBY_GC_OLDMALLOC_LIMIT
, главное событие GC вызвано.