Sto attraversando un periodo difficile con perdite di memoria in un'app completamente sviluppata. C# con MVVM Light 5. Ho trascorso tutta la settimana a imparare come usare il profiler di memoria, a leggere i problemi di perdita di memoria, ecc. Ecc. Ho messo almeno 25 ore in questo problema. Cancella accuratamente tutti i gestori di eventi e annullo anche DataContext e LayoutRoot di ogni pagina dopo BackNavigation, nonché quando viene rilevata una navigazione circolare (memorizzo l'ultima istanza in esecuzione di una pagina in App.cs, quando un'altra istanza di quella pagina sta per essere creato, controllo se esisteva già un'istanza e, in tal caso, l'ho cancellata).Perdite di memoria massive WP8
Ho esaurito i miei sforzi e non so da dove andare.
Di seguito è riportato un collegamento a uno screenshot dell'analisi della memoria dopo aver navigato tra 2 pagine ripetutamente. Le istanze di ogni pagina non vengono liberate per qualche motivo, ma vengono ridotte a semplici byte.
Come si può vedere, la differenza tra le mie assegnazioni portati a nuovo e mantenuto visuali fin dall'inizio e alla fine è molto minore (circa 30 MB in totale).
Eppure nel grafico, vedo una differenza di quasi 100 MB.
Questo mi sta facendo impazzire, ho pensato che la piattaforma sottostante avrebbe fatto un lavoro migliore nella gestione di questo. Qualsiasi aiuto è molto apprezzato.
Stai utilizzando le istanze di WebBrowser per caso? Ho dovuto rimuoverlo completamente dalla mia app perché mi dava delle perdite di memoria che non riuscivo a risolvere. – McGarnagle
Potrebbe anche essere immagini –
Grazie per la risposta ragazzi. Non sto utilizzando il controllo WebBrowser. Ho alcune foto, ma per saltare 100mb in soli 5 cicli di navigazione è un po 'troppo. L'immagine più grande (lo sfondo del panorama) è 400kb. Il resto è sotto i 10kb. –