Sobes.tech
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.