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á.