Junior — Middle
Kako se vrši automatsko sakupljanje smeća u upravljanim jezicima programiranja?
sobes.tech АИ
Одговор од АИ
Automatsko sakupljanje smeća (Garbage Collection, GC) u upravljanim jezicima kao što je C# realizuje se putem posebnog mehanizma koji prati objekte u memoriji i oslobađa one na koje više nema referenci.
Osnovni principi GC:
- Praćenje referenci: GC određuje koje objekte su dostupni iz korenskih referenci (npr. lokalne promenljive, statička polja).
- Detekcija nedostupnih objekata: Objekti bez referenci smatraju se smećem.
- Oslobađanje memorije: GC oslobađa memoriju koju zauzimaju nedostupni objekti.
- Generacije: Za optimizaciju sakupljanja smeća, deli se na generacije (Gen 0, Gen 1, Gen 2), što omogućava češće sakupljanje mladih objekata i ređe starih.
Primer u C#:
class Program
{
static void Main()
{
var obj = new object();
// korišćenje objekta
obj = null; // objekat postaje nedostupan
GC.Collect(); // forsirani poziv sakupljača smeća (retko se koristi u pravim aplikacijama)
}
}
Na ovaj način, programer je oslobođen potrebe da ručno upravlja memorijom, što smanjuje broj grešaka povezanih sa curenjem memorije.