Estoy usando GC.stat
para el uso de memoria de perfil en nuestra aplicación Rails. GC.stat
devuelve un hash con las siguientes claves:¿Qué significan los campos de Ruby's GC.stat?
:count
:heap_used
:heap_length
:heap_increment
:heap_live_num
:heap_free_num
:heap_final_num
¿Alguien sabe exactamente lo que significan estos valores? No hay documentación de ellos en la fuente de Ruby (gc.c), solo un comentario: "El contenido del hash está definido por la implementación y puede cambiarse en el futuro".
Algunos de estos campos tienen sentido desde el contexto, p. count
es la cantidad de montones que Ruby ha asignado. ¿Pero qué es heap_final_num
? ¿Cuál es heap_increment
? ¿Es heap_length
el tamaño de pila mínimo?
estoy jugando con RUBY_MIN_HEAP_SLOTS
, RUBY_FREE_MIN
y RUBY_GC_MALLOC_LIMIT
, pero cambiando los VARs env no parece tener ningún efecto sobre :heap_count
o :heap_length
. Esperaría que :heap_count
cayera si aumentara radicalmente las ranuras mínimas. ¡Entonces realmente me gustaría saber exactamente qué representan todos los valores de GC.stat
!
Estoy usando Ruby 1.9.3.
la información de esta respuesta no es accurate..see [este post] (http://samsaffron.com/archive/2013/11/22/demystifying-the-ruby-gc) para la respuesta correcta. – tihom