2009-08-11 7 views
7

He descargado el "Detector de fugas de memoria Javascript" para IE mencionado en otro lugar en SO y also here pero no puedo encontrar la manera de usarlo. Al parecer, solía haber otra publicación de blog que tal vez entró en este detalle, pero el enlace al enlace anterior está roto.¿Cómo usar los detectores de fuga de memoria Javascript IE7?

También he intentado usar sIEve y hace un trabajo bastante decente, excepto que no puedo hacer que la función "copiar" funcione correctamente. Es decir, me gustaría copiar las diversas estadísticas para poder manipularlas sin conexión y preparar un informe para mi gerente. Sin embargo, como digo, hay problemas con la copia de los datos, por lo que hasta que los informe a los desarrolladores, y si luego resuelven el problema, todo lo que puedo obtener son capturas de pantalla no interactivas.

Pregunto a la comunidad de SO cómo están usando las herramientas anteriores, o si conocen otras herramientas fáciles de usar para medir las fallas de memoria de IE7 Javascript, que puedo usar en la preparación de informes para administración, p. desde donde puede exportar datos sin procesar.

Gracias de antemano

Respuesta

6

Aquí es mi propia experiencia con el tamiz en el aprox. 24 horas desde que hice esta pregunta. Proporciona datos amplios, visuales, aunque no interactivos, p. "solo lectura". Proporciona una forma de "copiar" los datos que muestra en sus diversas grillas "Mostrar", en mi caso "Mostrar en uso". Sin embargo, la cantidad de datos que esto produce al pegar en un documento de texto va mucho más allá de lo que realmente se muestra en la cuadrícula y es francamente abundante.

Déjenme elaborar mi caso de uso. SIEVE no indicaba "filtraciones" en sí sino más bien "huérfanos". Para ver lo que esto significa en el lenguaje SIEve, ver this page.

Una vez que utilicé el navegador sIEve para acceder a la página que me interesó utilicé la funcionalidad "Mostrar en uso" para mostrar una cuadrícula con aproximadamente 10 o 12 campos. Los datos de la columna se pueden ordenar haciendo clic en el encabezado, así que pude ordenar en la columna "Huérfano" y luego seleccionar el rango de filas que indicaron "Sí" y luego hacer clic en "Copiar"

Sin embargo, hice esta pregunta en primer lugar porque Copia o no parecía estar funcionando, o se colgó sIEve. Seguí encontrando estos problemas alrededor de un tercio o la mitad de las veces, pero seguí siendo persistente y finalmente pude pegar los datos sin procesar en un documento.

Como he mencionado, la cantidad de datos sin procesar es copiosa. Entonces, lo único que he desarrollado hasta ahora es una expresión regular para contar los "registros". Cada registro comienza con una línea como la siguiente:

http://localhost:8086/yms_web/yardmanager.do (1 reference) 

Siempre indicará el número de referencias, por lo que esta es la expresión regular que he desarrollado en la búsqueda de estas filas en los datos en bruto; observo que estoy usando Cygwin para esto:

$ egrep '\([0-9]+ reference[s]?\)' before_trailer_adjust_clicks.txt 
http://localhost:8086/yms_web/yardmanager.do (5 references) 
http://localhost:8086/yms_web/yardmanager.do (1 reference) 
http://localhost:8086/yms_web/yardmanager.do (2 references) 

Como se puede ver la expresión regular está manejando adecuadamente la posibilidad de que las referencias en plural; No lo he visto manejar casos donde hay referencias de dos dígitos, pero creo que debería.

En cualquier caso, conectando el resultado anterior a wc -l, puede averiguar rápidamente cuántas líneas tiene, por lo que en mi caso, capturando los datos de la cuadrícula donde "Huérfano" igualó "Sí", y haciendo esto sobre las peticiones HTTP sucesivas, yo era capaz de ver cómo el número de huérfanos está aumentando, por ejemplo:

$ egrep '\([0-9]+ reference[s]?\)' before_trailer_adjust_clicks.txt | wc -l 
3 

$ egrep '\([0-9]+ reference[s]?\)' after_trailer_adjust_click.txt | wc -l 
4 

$ egrep '\([0-9]+ reference[s]?\)' after_create_rftask_click.txt | wc -l 
4 

$ egrep '\([0-9]+ reference[s]?\)' after_create_rftask_close.txt | wc -l 
66 

$ egrep '\([0-9]+ reference[s]?\)' after_trailer_adjust_close.txt | wc -l 
163 

Por supuesto, el comando egrep podría llamar dentro de una escritura del golpe de bucle a través de los archivos que son de interés pero aún no he llegado tan lejos.

Por cierto, esto es para una aplicación ExtJS y pregunté en su foro y recibí algunos buenos consejos y ¡pude reducir drásticamente la cantidad de huérfanos!

Espero que esto ayude a otros en asegurarse así y no de por qué esta cuestión se ha votado a estar cerrada

4

Link es obsoleta, por lo que lo modificó para ir a la root of the blog y encuentre el artículo a través de las etiquetas.

JavaScript Memory Leak Detector (v2)

+0

Gracias. Muy bien puedo "responder" mi propia pregunta con algunos comandos de cygwin/línea de comandos que he estado desarrollando hoy para analizar a través de datos de sIEve también. –

+0

¡Genial! Sí, por favor publícalos. –

+0

He intentado esta herramienta de detección de pérdida de memoria Javascript ahora y he llegado a la conclusión de que sIEve es la herramienta más útil para mí, al menos. El primero a diferencia de sIEve no A) indica "huérfanos" que definitivamente parecen ser la causa del aumento de la memoria, ya que una vez que los mitigué, la memoria no aumentó como lo hacía anteriormente, o B) proporcionó la capacidad de descargar y manipular datos para informar , al menos hasta donde puedo ver –