Я использую 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.