Sobes.tech
Middle+

Dart tilida chiqindilarni yig'uvchi mexanizmi qanday xususiyatlarga ega?

sobes.tech AI

AIdan javob

Dartdagi axlat to'plovchi Generatsion Axlat To'plash algoritmiga asoslangan.

Xususiyatlar:

  • Generatsion: Ob'ektlar "yosh" (yangi joy) va "eski" (eski joy) ga bo'linadi. Ko'p ob'ektlar uzoq umr ko'rmaydi, shuning uchun "yosh" ob'ektlarni to'plash ko'proq va tezroq amalga oshiriladi.
  • Ikki barmoq algoritmi: "Yosh" ob'ektlarni to'plash uchun ishlatiladi. Ikki ko'rsatkich yashayotgan ob'ektlar grafigi bo'ylab yuradi va yashayotgan ob'ektlarni "eski" avlodga ko'chiradi.
  • Belgilash-Tozalash: "Eski" ob'ektlarni to'plash uchun qo'llaniladi. Avvalo, yashayotgan ob'ektlar belgilangan, so'ngra belgilamaganlar o'chiriladi.
  • Stop-the-World: Axlat to'plash dastur bajarilishini to'xtatadi. Biroq, Generatsion yondashuv bu to'xtashlarni qisqartirish uchun "yosh" avlodni tez va muntazam to'plashni ta'minlaydi.
  • Kompaktsiya (Old Space): Belgilash-Tozalash bosqichidan so'ng, to'plov "eski" avlodni kompaktlashtirishi mumkin, bu esa xotira bo'laklanishini kamaytiradi.
  • Destruktorlar yo'q: Dartda an'anaviy ma'noda destruktorlar yo'q. Resurslar avtomatik ravishda axlat to'plovchi tomonidan ozod qilinadi.

Dartdagi Generatsion GC ning asosiy afzalligi — yuqori ishlash samaradorligi, chunki ko'pchilik ajratilgan ob'ektlar tezda foydalanilmay qoladi.