Recentemente ci sono stati degli articoli davvero fantastici su questo argomento. Ci sono alcune fonti davvero sorprendenti di creazione di oggetti che non attirano la tua attenzione a meno che tu non sia sintonizzato su di esso. In genere, il problema non è l'utilizzo della memoria, in realtà sono i cicli di raccolta dei dati inutili necessari per raccogliere la memoria che l'app sta lentamente perdendo.
Questo articolo è la migliore che ho letto di recente sul tema: http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript
quanto riguarda gli strumenti per combattere/diagnosticare il problema, Speedtracer di Google Chrome viene in mente. Ovviamente, la messa a punto per Chrome non garantisce l'ottimizzazione per tutti i browser, ma la maggior parte delle cose che determinano la creazione di oggetti in Chrome sono comuni alle specifiche JS in quanto implementate da tutti i browser.
Una cosa importante da considerare è che l'utilizzo della RAM e l'utilizzo della RAM video non sono gli stessi. Una buona pratica consiste nel determinare quali porzioni della tua interfaccia utente vengono accelerate dall'hardware e assicurarsi che siano di dimensioni ridotte (ad esempio si adattano allo schermo tutte in una volta). Se si ha un'enorme porzione di scorrimento dello schermo accelerata, si otterrà lo strappo/piastrellatura della GPU e lo scorrimento lento. È possibile rilevare questo in parte utilizzando il simulatore iOS. Questo articolo illustra brevemente l'idea: http://devinsheaven.com/turn-your-iphone-wacky-and-make-your-iphone-application-better/
Infine, ci sono un sacco di schemi di perdita di memoria molto comuni in JavaScript che ogni ingegnere incontra di tanto in tanto. IBM ha una buona lista di loro. Non posso pubblicare più di due link perché sono un n00b, ma puoi usare Google per "Common JavaScript Memory Leaks" ed è probabilmente il primo risultato.
fonte
2012-05-06 02:10:49