Sobes.tech
Middle+

Хусусиятҳои ҷамъкунандаи партовҳо дар забони Dart чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

Dart-да қоқиш тўплагичи Генерацион Қоқиш Тўплаш алгоритмига асосланган.

Хусусиятлар:

  • Генерацион: Объектлар "ёш" (янги ҳовуз) ва "кекса" (кекса ҳовуз) бўлиб бўлинади. Кўп объектлар узоқ яшамайди, шунинг учун "ёш" объектларни йиғиш кўпроқ ва тезроқ амалга оширилади.
  • Икки бовуқ алгоритми: "Ёш" объектларни йиғиш учун қўлланилади. Икки кўрсаткич тирик объектлар графи бўйлаб ҳаракат қилади ва тирик объектларни "кекса" авлодга кўчиради.
  • Белгилаш-Тозалаш: "Кекса" объектларни йиғиш учун қўлланилади. Аввалда тирик объектлар белгилаш, кейин эса белгиламадиганларни олиб ташлаш.
  • Stop-the-World: Қоқиш тўплагичи дастурни бажаришни тўхтатади. Аммо, Генерацион ёндашув бу танаффусларни қисқартириш учун "ёш" авлодни тез ва мунтазам йиғишни таъминлайди.
  • Компактлаштириш (Old Space): Белгилаш-Тозалаш босқичидан кейин, йиғувчи "кекса" авлодни компактлаштириши мумкин, бу эса хотирани парчаланишини камайтиради.
  • Деструкторлар йўқ: Dartда анъанавий маънода деструкторлар йўқ. Манбаалар автоматик равишда қоқиш тўплагичи томонидан озод қилинади.

Dartда Генерацион GCнинг асосий афзаллиги — юқори ишлаш самарадорлиги, бу кўп ҳолларда ажратилган объектлар тезда мавжуд бўлмай қолишига оптимизация қилинган.