2010-03-08 13 views
10

La nostra squadra si trova ad affrontare una perdita di memoria lenta ma seria . Abbiamo letto le cause normali delle perdite di memoria in Javascript (ad esempio chiusure e riferimenti circolari).Quali sono alcuni dei migliori strumenti di rilevamento della memoria Javascript?

Abbiamo cercato di evitare queste trappole nel codice, ma probabilmente rimanevano ancora errori sconosciuti.

Ho iniziato la ricerca di strumenti disponibili ma vorrei ricevere suggerimenti da persone con esperienza reale con questi strumenti.

Alcuni degli strumenti che ho trovato finora (ma non hanno idea di quanto è buono e utile che sarebbe per il nostro problema):

La nostra ricerca non è limitata agli strumenti gratuiti, sarà un bonus, ma soprattutto qualcosa che porterà a termine il lavoro.

Facciamo il seguente nel nostro codice JavaScript:

  • AJAX chiamate a un .NET WCF back-end che rimandano dati JSON
  • manipolare il DOM
  • Mantenere un modello di oggetti piuttosto dimensioni nel il Javascript per memorizzare lo stato corrente

risposta

1

Un altro strumento per voi: JavaScript Memory Validator.

Spettacoli allocazioni, oggetti, punti di attivazione generazioni, istantanee, ecc

Compatibile con Firefox 1.0 attraverso 3.6.

+0

Sono rimasto piacevolmente sorpreso con questo strumento. Forse il migliore tra quelli che abbiamo valutato. È un po 'non lucidato ai bordi. Si è schiantato un paio di volte ed è stato molto lento, ma ha ottenuto il lavoro anche se un po 'frustrante da usare. –

+0

Sei davvero in grado di utilizzare questo strumento? Abbiamo provato a usarlo, ma prima esegue una scansione del sistema (Lord sa a cosa serve la scansione) e trova plugin-container. quindi quando si avvia l'applicazione, non succede nulla. –

1

Ho usato il rilevatore di perdite di memoria JavaScript e posso dirvi che funziona benissimo.

Quale motore dinamico stai utilizzando? Sulla base della menzione di un servizio web .Net, suppongo che tu stia usando ASP.Net. È corretto? Si consiglia di guardare la libreria JavaScript di ASP.Net AJAX. È stato costruito in un modo che aiuta questa situazione. Tutti i componenti hanno un metodo dispose() che consente di rimuovere i riferimenti agli oggetti DOM. Quando sono passato ad ASP.Net AJAX, la mia pagina è diventata molto più reattiva.

+0

Questo strumento sembrava promettente ma non ha mai riportato nulla; i comandi restavano sempre vuoti. Vieni a pensare che potrebbe non essere eseguito su IE8. Ci riproverò su IE7 e riferirò. Grazie per il suggerimento sulla libreria Javascript AJAX. La nostra soluzione utilizza componenti JavaScript personalizzati con JQuery, quindi non funzionerebbe per noi. –

+0

Sì. Questo strumento è per le versioni di IE prima di IE8. Questo perché i problemi di perdita di memoria per i quali sono stati testati sono stati risolti in IE8. Se la perdita di memoria di cui parlavi si verifica in IE8 (o Firefox, ecc.), Allora non credo che nessuno di questi strumenti sarà in grado di aiutarti.Testano il codice che causa perdite nelle versioni di IE prima di IE8. –

2

sIEve è per perdite di memoria in IE in particolare. Quello che mi piace è che puoi riprodurre in modo affidabile i passaggi utilizzati e acquisire dati in grado di agire. Vedere il seguente:

How to use IE7 Javascript memory leak detectors?

+0

Grazie abbiamo fatto un tentativo. Non è un cattivo strumento. Ha funzionato su IE7 ma non su IE8. Non siamo ancora riusciti a capire cosa stia causando la perdita con questo strumento, potrebbe essere perché non abbiamo usato lo strumento correttamente ... –

Problemi correlati