2008-10-14 10 views
16

He intentado rastrear este durante literalmente un mes sin éxito. Tengo este código en un sitio web de publicidad de automóviles que básicamente permite que las miniaturas giren en los resultados de búsqueda dado que un automóvil tiene varias imágenes. Se puede ver en acción en el siguiente:¿Cómo rastrear y depurar fugas de memoria de JavaScript en Firefox?

http://www.abcavendre.com/4506691919/

Está construido en el marco mootools 1.2. El problema es que este script, en Firefox 3, consume una cantidad bastante grande de tiempo extra de memoria cuando una página está llena de esas imágenes que giran, como esta página de inventario:

http://www.abcavendre.com/Vitrine/Israel_Huttman/

Puede ver la fuente de la secuencia de comandos en cuestión aquí:

http://www.abcavendre.com/scripts/showcase_small.js

¿Alguna idea sobre qué está causando la pérdida de memoria? Lo extraño es que este código se comporta correctamente en IE7.

+0

¿Lo resolvió usted? Si es así, ¿cuál fue el problema? –

+0

No logré resolverlo. Obtengo información valiosa del complemento Leak Monitor. Todavía estoy trabajando en ello. –

+7

Desactiva Firebug si está habilitado de alguna manera. – leppie

Respuesta

8

una manera de rastrear las pérdidas de memoria en Firefox es con el Leak Monitor Addon. Muestra pérdidas de memoria de javascript (incluidas las secuencias de comandos de extensión).

Recuerde que el complemento mostrará a veces los objetos filtrados que se limpiarán más tarde por la recolección de basura. Si ese es el caso, el complemento abrirá una nueva ventana que le mostrará el nuevo estado.

+0

Se ha perdido: después de https, entonces SO hace un curioso envío de URL a TheEdge ... :-) – PhiLho

+0

Solucionado. Gracias por informar;) –

+5

Al ver que SO es un sitio en idioma inglés, es posible que desee proporcionar un enlace en inglés: https://addons.mozilla.org/en-US/firefox/addon/2490 –

0

Trate elementos de anulación matriz variable en el final de la función initialize

... 

    if (ads.length > 0) 
     { 
     this.imagesFx = new Fx.Elements(elements, 
      { 
      wait: false, 
      duration: 1000 
      }); 
     this.moveNext.periodical(2500, this); 
     } 

    elements = null; //Add THIS! 
} 
+0

Eso no explicaría la pérdida de memoria que ocurre horas extras (sin actualización de página) ya que la función de inicialización se llama solo una vez por página. –

+0

Pruébalo ... no va a doler –

+0

Acabo de hacer, sin cambios. –

0

Actualización a MooTools 1.2.1, hemos mejorado la recolección de basura y el manejo de fugas.

Cuestiones relacionadas