Dartda Garbage Collector.Dartning axlat yig'uvchisi (GC) Dart Runtime ichida joylashgan va Dart dasturlash tilining muhim komponenti bo'lib, xotirani avtomatik va samarali boshqarish uchun mo'ljallangan.
Dart, xotirani ikkita asosiy avlod (
generation)-ga ajratadigan avlod axlat yig'ish strategiyasidan foydalanadi:
Yangi avlod (young space scavenger).Ushbu komponent qisqa muddatli obyektlar bilan bog'liq xotirani bo'shatish uchun javobgardir. Xotira maydoni faol (
active) va faol bo'lmagan (
inactive) qismlarga bo'linadi, yangi obyektlar faol qismga o'tkaziladi. Faol qismi to'lganida, tirik obyektlar faol bo'lmagan yarmiga o'tkaziladi. Chiqindilarni yig'ish obyektning holatini (alive yoki dead) eng pastdagi (root) obyektlaridan boshlab havolalarni tekshirish orqali aniqlaydi.
Eski avlod (parallel mark and sweep collectors).Parallel belgilash (marking) obyekt grafigini aylanib o'tish orqali xotiradagi foydalanilayotgan obyektlarni aniqlaydi va bir vaqtning o'zida ishlatilmayotgan obyektlarni o'chiradi. O'chirilgan obyektlar keyingi axlat yig'ish jarayonida qayta ishlash (recycling) uchun xotira hovuziga (Heap)-ga qaytariladi.
GC ishga tushish vaqti.Chiqindilarni yig'ish ishi User ilova bilan interaksiya bo'lmaganda tegishli vaqtlarda ishga tushadi. Axlat yig'uvchi tomonidan taqdim etilgan ilgaklar (hooks) Flutter engine-ga ilova ishlamayotganida yoki User bilan hech qanday interaksiya bo'lmaganda uni xabardor qilish imkonini beradi.
Manbalar:
1. Medium:
Link2. Medium:
Link3. Linkedin:
Link#Dart