Я использую GC.stat для использования памяти памяти в нашем Rails-приложении. GC.stat возвращает хэш со следующими ключами:
:count
:heap_used
:heap_length
:heap_increment
:heap_live_num
:heap_free_num
:heap_final_num
Знает ли кто-нибудь точно, что означают эти значения? Там нет документации о них в источнике Ruby (gc.c), просто комментарий: "Содержимое хэша определяется реализацией и может быть изменено в будущем".
Некоторые из этих полей имеют смысл из контекста, например. count - количество кучи, выделенных Ruby. Но что такое heap_final_num? Что такое heap_increment? Является ли heap_length минимальным размером кучи?
Я играю с RUBY_MIN_HEAP_SLOTS, RUBY_FREE_MIN и RUBY_GC_MALLOC_LIMIT, но изменение этих env vars, похоже, не влияет на :heap_count или :heap_length. Я ожидал бы, что :heap_count снизится, если я резко увеличу минимальные интервалы кучи. Поэтому я действительно хотел бы точно знать, что представляют все значения GC.stat!
Я использую Ruby 1.9.3.