Come posso tracciare ed eseguire il debug delle perdite di memoria JavaScript in Firefox?

StackOverflow https://stackoverflow.com/questions/200822

Domanda

Sto cercando di rintracciarlo letteralmente da un mese ormai senza successo. Ho questo pezzo di codice su un sito Web di pubblicità automobilistica che sostanzialmente consente alle miniature di ruotare nei risultati di ricerca dato che un'auto ha più immagini. Puoi vederlo in azione al seguente indirizzo:

  

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

È basato sul mootools 1.2 . Il problema è che questo script, in Firefox 3, consuma una quantità piuttosto grande di memoria negli straordinari quando una pagina è piena di quelle immagini rotanti, come questa pagina di inventario:

  

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

Puoi vedere la fonte dello script in questione qui:

  

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

Qualche idea su cosa sta causando la perdita di memoria? La cosa strana è che questo codice si comporta correttamente in IE7.

È stato utile?

Soluzione

Un modo per tenere traccia delle perdite di memoria in Firefox è con Addon Leak Monitor . Mostra le perdite di memoria di javascript (inclusi gli script di estensione).

Ricorda che a volte il plugin mostrerà oggetti trapelati che verranno ripuliti in seguito dalla garbage collection. In tal caso, il plugin avvierà una nuova finestra che mostra il nuovo stato.

Altri suggerimenti

Aggiornamento a MooTools 1.2.1, abbiamo migliorato la raccolta dei rifiuti e la gestione delle perdite.

Prova a annullare la matrice di elementi variabili alla fine della funzione di inizializzazione

    ...

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

    elements = null; //Add THIS!
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top