Middle+
რა არის Dart ენის მტვრის შეგროვის მახასიათებლები?
sobes.tech AI
პასუხი AI-სგან
Dart-да қоқиш тўплагичи Генерацион Қоқиш Тўплаш алгоритмига асосланган.
Хусусиятлар:
- Генерацион: Объектлар "ёш" (янги ҳовуз) ва "кекса" (кекса ҳовуз) бўлиб бўлинади. Кўп объектлар узоқ яшамайди, шунинг учун "ёш" объектларни йиғиш кўпроқ ва тезроқ амалга оширилади.
- Икки бовуқ алгоритми: "Ёш" объектларни йиғиш учун қўлланилади. Икки кўрсаткич тирик объектлар графи бўйлаб ҳаракат қилади ва тирик объектларни "кекса" авлодга кўчиради.
- Белгилаш-Тозалаш: "Кекса" объектларни йиғиш учун қўлланилади. Аввалда тирик объектлар белгилаш, кейин эса белгиламадиганларни олиб ташлаш.
- Stop-the-World: Қоқиш тўплагичи дастурни бажаришни тўхтатади. Аммо, Генерацион ёндашув бу танаффусларни қисқартириш учун "ёш" авлодни тез ва мунтазам йиғишни таъминлайди.
- Компактлаштириш (Old Space): Белгилаш-Тозалаш босқичидан кейин, йиғувчи "кекса" авлодни компактлаштириши мумкин, бу эса хотирани парчаланишини камайтиради.
- Деструкторлар йўқ: Dartда анъанавий маънода деструкторлар йўқ. Манбаалар автоматик равишда қоқиш тўплагичи томонидан озод қилинади.
Dartда Генерацион GCнинг асосий афзаллиги — юқори ишлаш самарадорлиги, бу кўп ҳолларда ажратилган объектлар тезда мавжуд бўлмай қолишига оптимизация қилинган.