Markierung und Kompaktierung werden zu einer Phase zusammengefaßt
2.3.1 Stop-and-copy
Heap wird in zwei gleich große, kontinuierliche Stücke
aufgeteilt (sogenannte semispaces)
es ist immer nur genau ein Semispace in Benutzung
sobald Allokation eines Objektes wegen Speichermangel fehlschlägt,
wird Programm gestoppt und der Garbage Collector tritt in Aktion
alle lebendigen Objekte werden vom aktuellen Semispace (fromspace)
zum anderen Speicherbereich (tospace) kopiert, und zwar so, daß diese
kontinuierlich plaziert werden
nach Beendigung des Kopiervorgangs wird der zweite Semispace
zum aktuellen Semispace gemacht und das Programm kann fortfahren
Probleme:
nutzbarer Heapspeicher wird halbiert
mehrfach referenzierte Objekte dürfen nicht mehrfach
kopiert werden (deswegen werden bei schon kopierten Objekten forward
pointer installiert, welche auf die neue Adresse des Objektes zeigen)