Sobes.tech
Middle+

Jaké jsou vlastnosti garbage collectoru v jazyce Dart?

sobes.tech AI

Odpověď od AI

Sběrač odpadu v Dartu je založen na algoritmu Generational Garbage Collection.

Vlastnosti:

  • Generační: Objektům se dělí na "mladé" (nový prostor) a "staré" (starý prostor). Většina objektů nežije dlouho, proto se sběr "mladých" děje častěji a rychleji.
  • Algoritmus dvou prstů: Používá se k sběru "mladých" objektů. Dva ukazatele procházejí graf živých objektů a přesouvají živé objekty do "staré" generace.
  • Značení-Úklid: Používá se k sběru "starých" objektů. Nejprve jsou označeny živé objekty, poté jsou odstraněny všechny neoznačené.
  • Stop-the-World: Sběr odpadu pozastavuje běh programu. Nicméně, přístup Generational minimalizuje dobu těchto pauz díky častému a rychlému sběru "mladé" generace.
  • Kompakce (Old Space): Po fázi Značení-Úklid může sběrač zkomprimovat "starou" generaci, čímž se snižuje fragmentace paměti.
  • Žádní destruktory: V Dartu neexistují destruktory v tradičním smyslu. Uvolnění zdrojů probíhá automaticky sběračem odpadu.

Hlavní výhodou Generational GC v Dartu je vysoký výkon díky optimalizaci pro případy, kdy většina alokovaných objektů rychle přestává být dostupná.