Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
In C e C++ molti oggetti richiedono l'allocazione delle risorse una volta che sono stati dichiarati, in modo da poter essere utilizzati in modo sicuro. Oltre ad allocare le risorse, il programmatore ha il compito di rilasciarle di nuovo al pool di memoria libera dopo che l'oggetto è stato utilizzato. Se le risorse non vengono rilasciate, si verifica una perdita di memoria, poiché viene consumata inutilmente una quantità crescente di risorse. Se invece le risorse vengono rilasciate prima del tempo, possono verificarsi altri problemi, quali la perdita di dati, il danneggiamento di altre aree di memoria ed eccezioni di puntatore null.
Sia in Java che in C# questi rischi vengono evitati mediante la gestione indipendente del ciclo di vita di tutti gli oggetti utilizzati da un'applicazione.
In Java è la Java Virtual Machine (JVM) a liberare la memoria inutilizzata tenendo traccia dei riferimenti alle risorse allocate. Ogni volta che la JVM rileva che non esiste più un riferimento valido a una risorsa, quest'ultima viene sottoposta a Garbage Collection.
In C# la Garbage Collection viene gestita da Common Language Runtime (CLR), con una funzionalità simile a JVM. Il Garbage Collector CLR controlla periodicamente l'heap della memoria per cercare eventuali oggetti privi di riferimento, rilasciando le risorse bloccate da tali oggetti.
Vedere anche
Concetti
Gestione automatica della memoria