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:
- Havolalar kuzatuvi: GC, qaysi obyektlar mavjud (faol koddan havolalar bor) va qaysilari yo‘qligini aniqlaydi.
- Chiqindilarni aniqlash: Havolasi bo‘lmagan obyektlar chiqindilar sifatida hisoblanadi va o‘chirilishga tayyor.
- 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.