Sto usando GC.stat
per l'utilizzo della memoria profilo nella nostra app Rails. GC.stat
restituisce un hash con i seguenti tasti:Che cosa significano i campi di GC.stat di Ruby?
:count
:heap_used
:heap_length
:heap_increment
:heap_live_num
:heap_free_num
:heap_final_num
Qualcuno sa esattamente che cosa significano questi valori? Non c'è documentazione su di essi nella sorgente Ruby (gc.c), solo un commento: "I contenuti dell'hash sono definiti dall'implementazione e potrebbero essere modificati in futuro."
Alcuni di questi campi hanno senso dal contesto, ad es. count
è il numero di heap a cui è stato assegnato Ruby. Ma cos'è heap_final_num
? Che cos'è heap_increment
? heap_length
la dimensione minima dell'heap?
sto a giocherellare con RUBY_MIN_HEAP_SLOTS
, RUBY_FREE_MIN
e RUBY_GC_MALLOC_LIMIT
, ma cambiando quegli Vars env non sembra avere alcun effetto sul :heap_count
o :heap_length
. Mi aspetterei che lo :heap_count
si riduca se aumenti radicalmente gli slot di heap min. Quindi mi piacerebbe davvero sapere esattamente cosa rappresentano tutti i valori GC.stat
!
Sto usando Ruby 1.9.3.
le informazioni in questa risposta non è accurate..see [questo post] (http://samsaffron.com/archive/2013/11/22/demystifying-the-ruby-gc) per la risposta corretta. – tihom