Sobes.tech
Junior — Middle

Proqramlaşdırma dillərində tullantı yığan mexanizmin işləmə prinsipini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Qaraj tozalayıcı (Garbage Collector, GC) — bu avtomatik xotira boshqarish mexanizmi bo‘lib, dastur tomonidan endi foydalanilmaydigan obyektlar tomonidan egallangan xotirani bo‘shatadi.

Ishlash prinsipi:

  1. Havolalar kuzatuvi: GC, qaysi obyektlar mavjud (faol koddan havolalar bor) va qaysilari yo‘qligini aniqlaydi.
  2. Chiqindilarni aniqlash: Havolasi bo‘lmagan obyektlar chiqindilar sifatida hisoblanadi va o‘chirilishga tayyor.
  3. Xotirani bo‘shatish: GC, bunday obyektlar tomonidan egallangan xotirani bo‘shatadi, shunda uni qayta ishlatish mumkin bo‘ladi.

Flutter (Dart)da chiqindilarni yig‘ish referenslar hisobiga va davriy tozalashga asoslangan. U fon rejimida ishlaydi va dastur ishlashida to‘xtashlarni minimallashtirishga harakat qiladi.

Misol:

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

void main() {
  MyClass obj = MyClass('Salom');
  obj = null; // Endi MyClass obyekti mavjud emas va GC tomonidan to‘planishi mumkin
}

obj nullga teng bo‘lsa, MyClass obyekti mavjud emas va chiqindilar yig‘uvchisi tomonidan o‘chiriladi.