Articles of recolección de basura

Borrar un objeto en Ruby

Digamos que tengo la siguiente clase: class Vehicle @@total_vehicles = 0 @@all_instances = Array.new def initialize @@total_vehicles += 1 @@all_instances << self end def total_vehicles #returns total number of Vehicles 'alive' return @@total_vehicles end def all_vehicles #returns an array of all Vehicle objects return @@all_instances end end Ahora para mantener @@total_vehicles y @@all_instances actualizados y […]

¡¿Los símbolos de Ruby no se recogen basura? Entonces, ¿no es mejor usar una cadena?

Si crea 10.000 cadenas en un bucle, se debe llevar a cabo una gran cantidad de recolección de basura que consume una gran cantidad de recursos. Si haces lo mismo con los símbolos, creas objetos que no pueden ser recolectados como basura . ¿Qué es peor?

Ejecución de Ruby GC superior a ~ 250-320ms por solicitud

Tengo una aplicación de Ruby sobre raíles. Estoy investigando una disminución de Apdex en mi portal NewRelic y veo que, en promedio, se están gastando 250-320 ms de tiempo en la ejecución de GC. Este es un número muy inquietante. He incluido una captura de pantalla a continuación. Mi versión de Ruby es: ruby 1.9.3p194 […]

Afinador recolector de basura en Ruby 1.9

Sé sobre GC.enable/disable , pero ¿hay alguna forma de controlar el recolector de basura Ruby 1.9 con más detalle? Al perfilar mi código (usando perftools.rb), me doy cuenta de que el GC representa hasta el 30% del total de muestras, y me gustaría ver si es posible ajustar el GC para disminuir este número. ¿Hay […]

Los objetos ActiveRecord en hashes no se recolectan como basura, ¿un error o una especie de función de almacenamiento en caché?

Tengo un modelo simple de ActiveRecord llamado Student con 100 registros en la tabla. Hago lo siguiente en una sesión de consola de Rails: ObjectSpace.each_object(ActiveRecord::Base).count # => 0 x = Student.all ObjectSpace.each_object(ActiveRecord::Base).count # => 100 x = nil GC.start ObjectSpace.each_object(ActiveRecord::Base).count # => 0 # Good! Ahora hago lo siguiente: ObjectSpace.each_object(ActiveRecord::Base).count # => 0 x = […]

Colección de basura objeto Ruby Class

En ruby ​​todas las clases son objetos de clase. Dado que las clases también son objetos, ¿una máquina virtual Ruby sigue la misma estrategia de recolección de basura para los objetos de clase? ¿Qué determina que un objeto de clase es seguro para la recolección de basura?

Recolector de basura en Ruby 2.2 provoca inesperado CoW

¿Cómo evito que el GC provoque copia en escritura cuando bifurco mi proceso? Recientemente he estado analizando el comportamiento del recolector de basura en Ruby, debido a algunos problemas de memoria que encontré en mi progtwig (me quedo sin memoria en mi máquina de 60 bits de 0.5 TB, incluso para tareas bastante pequeñas). Para […]

Ruby / Rails recolección de basura

Dado que http es sin estado, cada solicitud a una aplicación crea un nuevo objeto. ¿Cómo limpia Rails los objetos no utilizados / con qué frecuencia?

Recolección de basura Ruby

¿Cuándo utilizaría este método de recolección de basura en su (s) progtwig (s) de Ruby? GC.start

¿Qué significan los campos de GC.stat de Ruby?

Estoy usando GC.stat para perfilar el uso de la memoria en nuestra aplicación Rails. GC.stat devuelve un hash con las siguientes claves: :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 […]