Tengo una pregunta con respecto a la recolección de basura en google chrome (Versión 20.0.1132.47, Ubuntu 11.04 64bit).Las instancias a las que hace referencia 'bound_this' solo no son basura recolectada
Mientras comparaba los volcados de pila y comprobaba si había fugas de memoria, descubrí algunas instancias que nunca se limpian. Normalmente, este comportamiento puede ser rastreado a un programador de errores, pero en este caso estoy bastante desorientado ..
Tome un vistazo a la siguiente pantalla
La instancia está referenciado
estoy usando la función underscore.js' 'bindAll' utilidad (underscore.js#bindAll) que se asigna a la función 'native_bind' de cromo (ECMA Script wiki on bound_this)
Me estoy perdiendo algo obvio aquí y si es así, ¿podría alguien explicar ¿Qué mantiene estas instancias con vida?
ACTUALIZACIÓN:
Mientras tanto Probé la misma aplicación en chrominium (18.0.1025.168 (Build para desarrolladores de Linux 134367) Ubuntu 11.10), que no muestra estos casos colgando ..
ACTUALIZACIÓN 2:
Siguiendo La sugerencia de Esaili para proporcionar un fragmento de jsfiddle, creé uno (http://jsfiddle.net/8gSTR/1/) que imita lo que básicamente estoy haciendo. La ejecución de este violín desafortunadamente no muestra la mala conducta que estoy experimentando en mi aplicación. Un montón-dump tomada mientras 'A'-casos aún se hace referencia parece algo similar, aunque a pesar de la referencia de la matriz window.o que mantiene vivos los casos:
como referencia tal no se encuentra en mi caso (captura de pantalla 1) No sé qué impide que Chrome libere estas instancias ...
ACTUALIZACIÓN 3:
Se han seguido los consejos para habilitar las propiedades ocultas. El resultado (con una de las ramas expandidas) se puede ver en la siguiente captura de pantalla, pero no me lleva más lejos.
No lo veo aquí http://jsfiddle.net/uGX22/3/. Inicialmente están allí (Heap teniendo 17.32mb con 60000 cierres), espero unos minutos y tomo una nueva instantánea y el montón vuelve a 6mb y los cierres desaparecen. ¿Puedes modificar mi jsfiddle para reproducir esto? – Esailija
¿Podría mostrarnos el código con el que creó esta situación? Realmente no lo entiendo de la captura de pantalla del depurador. – Bergi
Intentaré crear un pequeño fragmento para reproducir el problema. El código con el que creé la situación es parte de un SPA bastante grande, por lo que no es tan fácil de extraer. –