Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Liberare memoria
Forum - C# / VB.NET - Liberare memoria

Avatar
u5975 (Normal User)
Newbie


Messaggi: 13
Iscritto: 19/02/2010

Segnala al moderatore
Postato alle 6:42
Sabato, 18/06/2011
Ciao,
utilizzo Visual Studio 2008, con Microsoft SQL Enterprise Manager Microsoft Corporation Versione: 8.0.
Problema: quando utilizzo tabelle di dati con DataGridView piuttosto pesanti (con fotografie), la memoria utilizzata non viene rilasciata subito quando rimuovo la tabella. Almeno così sembra vedendo programmi che evidenziano le risorse utilizzate. La memoria si libera o  chiudendo l'applicazione oppure dopo alcuni minuti di non utilizzo. Esiste un sistema che alla chiusura della tabella libiri subito lo spazio? Io chiudo la tabella con:  
                                
                                       das.table.remove("xxxx")

Grazie
Walter Arienti

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
3
Down
V
Segnala al moderatore
Postato alle 12:17
Sabato, 18/06/2011
Prima di ricorrere a GC.Collect(), ricontrolla attentamente di non aver lasciato nessun riferimento esplicito o indiretto alla tabella in questione, perché se così fosse Remove rimuoverebbe solo il puntatore all'oggetto dalla lista (4 bytes), senza però deallocare la memoria occupata nell'heap.
Puoi usare DotTrace per evidenziare i memory leaks dell'applicazione.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 12:14
Sabato, 18/06/2011

prova un gc.collect


Ingegnere Informatico
https://ldlagency.it
PM