В чем разница между `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 вызвано.

Другие вопросы по тегам