Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist der Heap(-Teil) aufgebraucht, findet Garbage Collection statt und das Programm wird anschliessend im anderen Teil fortgesetzt
64
Embed
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Die Idee hinter Copying Garbage Collection (1)
Aufteilung des Heaps in zwei Teile: To-Space und From-Space
Nutzung eines Teiles durch das Programm
Ist der Heap(-Teil) aufgebraucht, findet Garbage Collection statt und das Programm wird anschliessend im anderen Teil fortgesetzt
Die Idee hinter Copying Garbage Collection (2)1. Vertauschen der beiden Hälften (From-Space, To-Space)
2. Kopieren der Objekte aus der root-set in den To-Space
3. Scannen der Objekte im To-Space und ggf. Kopieren referenzierter Objekte bzw. Korrektur der Referenzen
Cheneys Copying Collector (1)
Iterativer Algorithmus
Verbindet Kopieren und Scannen
Verwendet zwei Zeiger: scan / free
Forwarding-Zeiger um „Sharing“ zu garantieren
„The tricolour abstraction“
Cheneys Copying Collector (2)
Der Algorithmus:
Allokation
CPU-Kosten von stop-and-go Garbage Collection niedrig, da nur aktive Knoten besucht werden und das Kopieren von kleinen Objekten billig ist
R … Anzahl der erreichbaren Knotenc … Konstante (abhängig von der Zelle)M ...Grösse eines Semi-Spaces … Grösse einer Zelleg … CPU-Kosten pro Garbage Collection einer Zelle
Lokalität
Falsche Strategie zerstört die Lokalität(z.B.: Cheney‘s breadth-first search)