5

Ho un'applicazione Silverlight piuttosto semplice, ultimamente abbiamo avuto segnalazioni da parte degli utenti dell'applicazione che si bloccavano dopo diverse ore di utilizzo (4+). Abbiamo iniziato a scavare nell'applicazione e abbiamo notato che la porzione di memoria non gestita utilizzata dall'applicazione inizia molto in alto e continua a crescere senza controllo. Gli altri heap sembrano essere gestiti bene. Ho fatto un sacco di ricerche e sono andato persino a rimuovere tutte le immagini dalla mia applicazione e la memoria non gestita continua a crescere.Perché la mia applicazione Silverlight utilizza così tanta memoria non gestita?

Sono solo confuso a questo punto su cosa stia esattamente consumando tutta la memoria non gestita nella mia applicazione e cosa posso fare al riguardo. Ecco un'istantanea della mia applicazione dopo il caricamento iniziale, come puoi vedere sta già utilizzando oltre 100 MB di spazio di memoria non gestito. Sto solo cercando una guida qui su quali oggetti potrebbero essere nella memoria non gestita e su cosa fare per ridurre la quantità di memoria non gestita utilizzata dalla mia applicazione. Grazie!

Ants Memory Snapshot

ho preso un'altra istantanea o due utilizzando .NET Memory Profiler e sembra che il Kernel-HeapMemory è il più grande pezzo. Non sono sicuro che questo aiuti molto ma ho pensato di postarlo comunque.

enter image description here

+0

Il componente WebBrowser è incorporato nell'applicazione Silverlight? – kol

+0

No, non stiamo usando il controllo WebBrowser. –

+0

Non ti capita di creare molte WriteableBitmaps? –

risposta

1

Hai provato il CLR Profiler for Silverlight? L'ho usato con qualche successo in passato per risolvere i problemi di memoria.

+0

Questo sembra uno strumento decente, ma non sembra essere molto utile nella profilazione della memoria non gestita. Non sembra che ci siano problemi con la porzione gestita della mia app. Non riesco proprio a capire perché continua a consumare sempre più memoria non gestita. –

+0

Il punto è che si tratta di un problema con la memoria * non gestita *. –