2010-08-26 15 views
48

Ho un problema di perdita di memoria in un progetto JavaScript piuttosto complesso e spero che ci sono strumenti che mi potrebbero aiutare pin-point la causa del problema.strumenti per la correzione perdite di memoria in JavaScript

Ho provato la scheda Profilo dello strumento di sviluppo di Google Chrome, in cui è possibile scattare istantanee dell'HEAP e diffarlo con le istantanee precedenti (controllare http://www.youtube.com/GoogleDevelopers#p/c/B9EC47A6AAE4540F/1/OxW1dCjOstE per un avvio rapido su tale funzione).

Posso vedere la memoria esaurita con questo strumento ma da lì non riesco a trovare un modo per rilevare dove sono conservati i riferimenti ai miei oggetti (probabilmente in chiusure).

La mia domanda è: Quali strumenti si usa per il debug JavaScript perdita di memoria? C'è uno strumento che potrebbe farmi vedere i riferimenti e un po 'di codice sorgente di dove sono detenuti?

+0

Penso che la tua domanda non sia ontica qui (non è una domanda di programmazione, ma richiede un software), ma potrebbe essere ontica su http://softwarerecs.stackexchange.com. – peterh

risposta

31

mi sembra di correre in questo problema spesso e mai veramente avere una grande risposta diversa selezionando i breakpoint intelligenti nel tuo javascript. A volte v'è uno strumento per la vostra situazione specifica che può aiutare a trovare il problema, altre volte per me è un processo lungo per trovare la perdita.

Guarda il Allocation profiler in Chrome DevTools che ti fornisce un'interfaccia utente per le tue allocazioni e ti consente di tornare ai loro conservatori.

Questo è un good list of leak tools for Mozilla. Inoltre, ci sono alcuni screencasts of how to use the tools. In particolare, si può essere interessati nella sezione "Post-processing di stack", come si parla di essere in grado di ottenere i simboli migliori, e il nome file/linea di informazioni numero da una traccia dello stack.

Se stai usando Internet Explorer su Windows, ecco un JavaScript Memory Leak Detector che potrebbe rivelarsi utile.

Infine, ho trovato questo bel strumento su github chiamato MemoryLeakChecker dopo aver letto un post here, che cerca strutture di dati di grandi dimensioni e cerca di aiutarti a individuare dove stai perdendo memoria.

Spero che questo sia d'aiuto e fammi sapere quale (se esiste) finirà per aiutarti. Ci scusiamo per la mancanza di collegamenti ipertestuali reale, perché ho sotto 10 reputazione in questo momento non riesco a metterli tutti nel post.

0

Dai un'occhiata a https://addons.mozilla.org/en-US/firefox/addon/2490/ Non l'ho provato ma sembra avere alcune buone caratteristiche.

+0

darò una prova, ma sembra dedicato a un tipo specifico di perdita di riferimenti inter-finestra quando una finestra si chiude. la mia app è una app ajax a 1 finestra che non si chiude mai –

Problemi correlati