Middle+
Kokios yra Dart kalbos šiukšlių surinkėjo savybės?
sobes.tech AI
Atsakymas iš AI
Dart'o atlieka šiukšlių rinkėjas grindžiamas Generational Garbage Collection algoritmu.
Ypatybės:
- Generacinis: Objektai skirstomi į "jaunus" (naują erdvę) ir "senus" (senių erdvę). Dauguma objektų nesilaiko ilgai, todėl "jaunų" objektų rinkimas vyksta dažniau ir greičiau.
- Dvigubo piršto algoritmas: Naudojamas "jaunų" objektų rinkimui. Du rodyklės eina per gyvų objektų grafą ir perkelia gyvus objektus į "seną" kartą.
- Žymėjimas-valymas: Taikomas "senų" objektų rinkimui. Pirmiausia žymimi gyvi objektai, tada ištrinami visi nepažymėti.
- Stop-the-World: Atliekant šiukšlių rinkimą, programa sustabdomas. Tačiau, generacinis požiūris sumažina šių pauzių trukmę dažnu ir greitu "jaunų" kartos rinkimu.
- Kompaktiškumas (Old Space): Po žymėjimo-valymo fazės, rinkėjas gali suspausti "seną" kartą, sumažindamas atminties fragmentaciją.
- Nėra destruktorų: Dart'e nėra destruktorų tradiciniu požiūriu. Ištekliai automatiškai atlaisvinami šiukšlių rinkėjo.
Pagrindinis generacinio GC pranašumas Dart'e yra aukštas našumas, optimizuotas dažnam atvejui, kai dauguma paskirtų objektų greitai tampa neprieinami.