2010-03-08 16 views
10

Nuestro equipo se enfrenta con lento pero serio Javascript pérdida de memoria. Hemos leído sobre las causas normales de las pérdidas de memoria en Javascript (por ejemplo, cierres y referencias circulares).¿Cuáles son algunas de las mejores herramientas de detección de memoria de Javascript?

Tratamos de evitar esas trampas en el código pero es probable que todavía nos queden errores desconocidos.

Comencé mi búsqueda de herramientas disponibles pero me gustaría la opinión de personas con experiencia real con estas herramientas.

Algunas de las herramientas que he encontrado hasta el momento (pero no tienen idea de lo bueno y útil que sería para nuestro problema):

Nuestra búsqueda no se limita a herramientas gratuitas, será una ventaja, pero lo más importante es algo que hará el trabajo.

Hacemos lo siguiente en nuestro código Javascript:

  • llamadas AJAX a un .NET WCF back-end que enviar de vuelta los datos JSON
  • manipular el DOM
  • Mantener un modelo de objetos de tamaño bastante en el Javascript para almacenar el estado actual

Respuesta

1

Otra herramienta para usted: JavaScript Memory Validator.

Muestra las asignaciones, objetos, puntos de acceso, las generaciones, las instantáneas, etc.

Funciona con Firefox 1.0 a 3.6.

+0

Me sorprendió gratamente con esta herramienta. Quizás el mejor de los que evaluamos. Es un poco pulido en los bordes. Se estrelló un par de veces y fue muy lento, pero hizo el trabajo aunque fue un poco frustrante de usar. –

+0

¿De verdad pudiste usar esta herramienta? Intentamos usarlo, pero primero se realiza un escaneo del sistema (el señor sabe para qué se está escaneando) y se encuentra el plugin-container. luego, cuando inicias la aplicación, no pasa nada. –

1

He usado el Detector de fugas de memoria JavaScript y puedo decir que funciona muy bien.

¿Qué motor dinámico estás utilizando? Según la mención de un servicio web .Net, supongo que está utilizando ASP.Net. ¿Es eso correcto? Es posible que desee consultar la biblioteca ASP.Net AJAX JavaScript. Fue construido de una manera que ayuda a esta situación. Todos los componentes tienen un método dispose() que le permite eliminar referencias a objetos DOM. Cuando cambié a ASP.Net AJAX, mi página se volvió mucho más receptiva.

+0

Esta herramienta parecía prometedora pero nunca informó nada en absoluto; los controles siempre permanecieron vacíos. Ahora que lo pienso, es posible que no se ejecute en IE8. Lo intentaré de nuevo en IE7 e informaré. Gracias por el consejo sobre la biblioteca JavaScript de AJAX. Nuestra solución utiliza componentes Javascript personalizados con JQuery, por lo que no nos funcionaría. –

+0

Sí. Esta herramienta es para versiones de IE antes de IE8. Esto se debe a que los problemas de pérdida de memoria que prueban se han corregido en IE8. Si se filtran las pérdidas de memoria de IE8 (o Firefox, etc.), entonces no creo que ninguna de estas herramientas pueda ayudarlo.Prueban el código que causa fugas en las versiones de IE antes de IE8. –

2

sIEve es para fugas de memoria en IE específicamente. Lo que me gusta de él es que puede reproducir de manera confiable los pasos utilizados y capturar datos que pueden ser activados. Véase el siguiente:

How to use IE7 Javascript memory leak detectors?

+0

Gracias, lo intentamos. No es una mala herramienta. Funcionó en IE7 pero no en IE8. Todavía no pudimos averiguar qué está causando la fuga con esta herramienta, podría ser porque no usamos la herramienta correctamente ... –

Cuestiones relacionadas