Middle+
Millised on Dart keele prügikoristaja omadused?
sobes.tech AI
Vastus AI-lt
Dart'i prügikorjaja põhineb Generational Garbage Collection algoritmil.
Omadused:
- Generatsiooniline: Objekte jagunevad "noored" (uus ruum) ja "vana" (vana ruum). Enamik objekte ei ela kaua, seetõttu toimub "noorte" objektide kogumine sagedamini ja kiiremini.
- Kahe sõrme algoritm: Kasutatakse "noorte" objektide kogumiseks. Kaks näitajat läbivad elavate objektide graafi ja liigutavad elavaid objekte "vana" põlvkonda.
- Märkimine-Puhastamine: Kasutatakse "vana" objektide kogumiseks. Esiteks märgitakse elavad objektid, seejärel eemaldatakse kõik märkimata objektid.
- Stop-the-World: Prügikorjaja peatab programmi täitmise. Kuid generatsiooniline lähenemine minimeerib nende pauside kestust, tehes sagedast ja kiiret "noorte" põlvkonna kogumist.
- Kompaktsione (Old Space): Pärast märkimise-puhastamise faasi võib koguja kompaktida "vana" põlvkonda, vähendades mälukahjustust.
- Ilma destruktoriteta: Dart'is ei ole destruktorid traditsioonilises mõttes. Ressursid vabastatakse automaatselt prügikorjaja poolt.
Generatsioonilise GC peamine eelis Dart'is on kõrge jõudlus, mis on optimeeritud olukordadele, kus enamik määratud objekte muutuvad kiiresti kättesaamatuks.