Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Karsten Neubecker Geändert vor über 11 Jahren
1
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
2
Die Idee hinter Copying Garbage Collection (2) Vertauschen der beiden Hälften (From-Space, To-Space) Kopieren der Objekte aus der root-set in den To-Space Scannen der Objekte im To-Space und ggf. Kopieren referenzierter Objekte bzw. Korrektur der Referenzen
3
Cheneys Copying Collector (1) Iterativer Algorithmus Verbindet Kopieren und Scannen Verwendet zwei Zeiger: scan / free Forwarding-Zeiger um Sharing zu garantieren The tricolour abstraction
4
Cheneys Copying Collector (2) Der Algorithmus:
54
Allokation CPU-Kosten von stop-and-go Garbage Collection niedrig, da nur aktive Knoten besucht werden und das Kopieren von kleinen Objekten billig ist Überprüfen des Speichers im Semispace Inkrementieren des free Zeigers Rückgabe der neuen Adresse
55
Multiple-Area Collection Statische Bereiche (static area) Bereiche für grosse Objekte (large object area) Compacting Garbage Collection:
56
Effizienz R … Anzahl der erreichbaren Knoten c … Konstante (abhängig von der Zelle) M...Grösse eines Semi-Space s …Grösse einer Zelle g …CPU-Kosten pro Garbage Collection einer Zelle
57
Lokalität Falsche Strategie zerstört die Lokalität (z.B.: Cheneys breadth-first search) Richtige Heap-Grösse wählen Paging Unterstützung durch Betriebssystem
58
Umgruppierungsstrategien Depth-first vs Breadth-first Copying Stackless recursive copying collection Approximately depth-first copying Hierarchical decomposition Hash tables
59
Stackless recursive copying collection Grundeinheit der Heap Allokation ist ein frame of closures von variabler Länge Jedes closure enthält einen Code-Zeiger und einen Zeiger auf einen Heap-Rahmen Rekursiv, aber Rekursionsstack liegt in bereits besuchten From-Space closures
60
Approximately Depth-first Copying Es wird immer an der zuletzt teilweise gefüllten Seite im To- Space fortgesetzt Partial untersucht die Seite am Ende von To-Space (benutzt Breitensuche) Ist Partial fertig, wird übliche Breitensuche fortgesetzt und To- Space Objekte eingelesen
61
Hierarchical decomposition Ähnlich wie Approximately depth-first copying 4 Zeiger (2 Scan, 2 Free) Nur für Baumstrukturen empfehlenswert
62
Hash tables Traversieren vermeiden Lineare Liste globaler Variablen Objekte nach Entstehung geordnet Liste wird von Garbage Collection verwendet Collector erreicht Objekte in der Erzeugungsreihenfolge Gute Lokalität
63
Copying Collection – Ja oder Nein? Ja wenn Speicherverwaltung von Allokation dominiert wird Es viele kleine, kurzlebige Objekte gibt Die Verzögerung durch GC keine Rolle spielt Alternative: Hybrides System: ein Teil wird von einem Copying Collector behandelt, ein anderer Teil vom z.B. Mark-Sweep oder Mark-Compact Copying Garbage Collection bildet die Grundlage für andere Verfahren. Generationale und inkrementelle Garbage Collection bauen auf Copying auf.
64
Danke für Ihre Aufmerksamkeit! FRAGEN ?
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.