Garbage Collection
Garbage collection (englisch, wörtlich deutsch: Mülleinsammeln) ist ein Fachbegriff aus der Softwaretechnik. Er steht für ein Verfahren zur regelmäßigen automatischen Wiederverfügbarmachung von nicht mehr benötigtem Speicherplatz, indem nicht mehr erreichbare Objekte im Speicher automatisch freigegeben werden.
In vielen Softwaresystemen wird Speicherplatz 'bei Bedarf' reserviert, um die Angaben zu einem Datenobjekt zu speichern. Wird nach Abarbeitung eines Programmteils das Objekt nicht mehr verwendet, so sollte der Platz für das Objekt auch wieder verfügbar gemacht werden. Diese Aufgabe erledigt eine garbage collector genannte Routine automatisch, ohne dass ein Programmierer hier explizit dran denken müsste.
Viele moderne Programmiersprachen haben garbage collection bereits in der Sprachdefinition. Für Programmiersprachen wie C, bei denen die Programmierer die Speicherverwaltung "von Hand" besorgen müssen, existieren Bibliotheken, die Garbage Collection implementieren.
Garbage Collection funktioniert, indem von bekanntermaßen noch benutzten Objekten ausgehend allen Verweise auf andere Objekte gefolgt wird. Auf diese Weise werden alle noch benutzten Objekte gefunden und markiert. Anschließend werden alle nicht auf diese Weise gefundenen Objekte gelöscht.
Garbage Collection verringert die Gefahr eines Speicherlecks, kann sie aber - entgegen einer weitverbreiteten Ansicht - nicht völlig ausschließen: Wenn irgendwo noch Referenzen auf eigentlich nicht mehr gebrauchte Objekte existieren, kann die Garbage Collection diese nicht als unbenutzt erkennen.