Junior
Cos'è il garbage collector in C#?
sobes.tech AI
Risposta dell'AI
Meccanismo automatico di gestione della memoria che libera la memoria occupata dagli oggetti a cui non ci sono più riferimenti. Questo previene perdite di memoria e semplifica il processo di sviluppo.
Principi di funzionamento del garbage collector:
- Monitoraggio degli oggetti: Identifica gli oggetti ancora accessibili dai nodi radice (campi statici, variabili locali nello stack).
- Raccolta dei rifiuti: Se un oggetto non ha riferimenti, il garbage collector lo segna per la rimozione.
- Liberazione della memoria: Libera la memoria occupata dagli oggetti rimossi e comprime la memoria rimanente per ridurre la frammentazione.
Generazioni di oggetti:
- Generazione 0: Contiene oggetti creati di recente e di breve durata. La raccolta avviene frequentemente.
- Generazione 1: Contiene oggetti sopravvissuti a una raccolta di generazione 0. La raccolta avviene meno frequentemente.
- Generazione 2: Contiene oggetti di lunga durata. La raccolta avviene raramente.
Chiamata forzata del GC (usata raramente e con cautela):
// Chiamata forzata alla raccolta dei rifiuti
System.GC.Collect();
// Attende la finalizzazione dei finalizzatori pendenti
System.GC.WaitForPendingFinalizers();
Il meccanismo principale di raccolta dei rifiuti in .NET è l’algoritmo di marcatura e compressione.