Sobes.tech
Junior — Middle

Можете ли објаснити принцип функционисања собирача смећа у програмским језицима?

sobes.tech АИ

Одговор од АИ

Sakupljač smeća (Garbage Collector, GC) je mehanizam automatskog upravljanja memorijom koji oslobađa memoriju zauzetu od strane objekata koji više nisu u upotrebi od strane programa.

Princip rada:

  1. Praćenje referenci: GC određuje koje objekte su dostupni (imaju reference iz aktivnog koda) i koje nisu.
  2. Detekcija smeća: Objekti bez referenci smatraju se smećem i podložni su brisanju.
  3. Oslobađanje memorije: GC oslobađa memoriju zauzetu od strane takvih objekata, kako bi se mogla ponovo koristiti.

U Flutteru (Dart), sakupljač smeća se zasniva na brojanju referenci i periodičnom čišćenju. Radi u pozadini i pokušava da minimizira pauze u radu aplikacije.

Primer:

class MyClass {
  String data;
  MyClass(this.data);
}

void main() {
  MyClass obj = MyClass('Zdravo');
  obj = null; // Sada je objekat MyClass nedostupan i može biti sakupljen od strane GC
}

Kada obj postane null, objekat MyClass postaje nedostupan i biće uklonjen od strane sakupljača smeća.