Sobes.tech
Junior

Ce este colectorul de gunoi (Garbage Collector) în C#?

sobes.tech AI

Răspuns de la AI

Mecanism automat de gestionare a memoriei care eliberează memoria ocupată de obiecte pentru care nu mai există referințe. Acest lucru previne scurgerile de memorie și simplifică procesul de dezvoltare.

Principiile de funcționare ale colectorului de gunoi:

  1. Urmărirea obiectelor: Identifică obiectele încă accesibile din nodurile rădăcină (câmpuri statice, variabile locale pe stivă).
  2. Colectarea gunoiului: Dacă un obiect nu are referințe, colectorul îl marchează pentru eliminare.
  3. Eliberarea memoriei: Eliberează memoria ocupată de obiectele eliminate și comprimă memoria rămasă pentru a reduce fragmentarea.

Generațiile obiectelor:

  • Generația 0: Conține obiecte create recent și de scurtă durată. Colectarea are loc frecvent.
  • Generația 1: Conține obiecte care au supraviețuit unei colectări de generație 0. Colectarea are loc mai rar.
  • Generația 2: Conține obiecte de lungă durată. Colectarea are loc rar.

Apel forțat la GC (folosit rar și cu precauție):

// Apel forțat la colectarea gunoiului
System.GC.Collect();
// Așteaptă finalizarea finalizatorilor
System.GC.WaitForPendingFinalizers();

Principalul mecanism de colectare a gunoiului în .NET este algoritmul de marcare și comprimare.