Definition

Was ist eine Garbage Collection (GC)?

| Autor / Redakteur: Stefan Luber / Dr. Jürgen Ehneß

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt. (Bild: © aga7ta - Fotolia)

Der Begriff „Garbage Collection“ bezeichnet im Computer- und Software-Umfeld Methoden zur automatischen Bereinigung des Speichers. Von einem Programm oder einem Betriebssystem nicht mehr benötigte Speicherbereiche werden durch die automatische Speicherbereinigung wieder freigegeben und dadurch Speicherlecks verhindert.

Garbage collection lässt sich mit dem Begriff „Müllsammlung“ ins Deutsche übersetzen. Es handelt sich um verschiedene Methoden, mit denen sich Speicherbereiche automatisch von nicht mehr benötigtem „Datenmüll“ bereinigen lassen. Die Speicherbereinigung gibt den von Programmen oder Betriebssystemen verwendeten und nicht mehr benötigten Speicherbereich frei und reduziert das Risiko für Speicherlecks.

Eine weitere Aufgabe der Speicherbereinigung ist es, die Fragmentierung des vorhandenen Speichers zu reduzieren. Die automatische Speicherbereinigung verhindert, dass sich Programmierer oder Software-Entwickler selbst um die Speicherverwaltung kümmern müssen. Gänzlich ausschließen lassen sich Speicherlecks mit Garbage Collection nicht. Es kommen verschiedene Methoden und Techniken zur Identifikation und Freigabe nicht mehr benötigter Speicherbereiche zum Einsatz, die unter den verschiedenen möglichen Bedingungen unterschiedlich effizient arbeiten.

Die Speicherbereinigung belegt Rechenressourcen und reduziert die Leistungsfähigkeit des Systems. Sie arbeitet im Hintergrund in regelmäßigen Abständen oder getriggert durch bestimmte Ereignisse. Eine Vielzahl von Programmiersprachen und Laufzeitumgebungen verfügt über integrierte Garbage Collectoren oder fertige Bibliotheken zur Speicherbereinigung. Beispiele für Programmiersprachen und Laufzeitumgebungen mit integrierter GC sind Lisp, Java, Basic, .Net, Python, Perl, Visual Objects oder C#.

Gründe für die Notwendigkeit einer automatischen Speicherbereinigung

Im Software-Umfeld ist es üblich, Speicherplatz zu reservieren, um beispielsweise die Inhalte von Variablen oder Datenobjekten während der Programmausführung zu speichern. Ist die Routine beendet, die den Speicherplatz für die Variablen oder Datenobjekte in Anspruch genommen hat, sollte der Speicherplatz wieder freigegeben werden. Passiert dies nicht, lässt er sich nicht mehr verwenden und ist für andere Programmteile oder Anwendungen nicht mehr nutzbar. Als Folge entstehen Speicherlecks und stark fragmentierte Speicherbereiche.

Im Extremfall hat das System überhaupt keinen Speicherplatz mehr zur Verfügung. Diese Fehler treten nicht unmittelbar, sondern in der Regel erst nach einer gewissen Programm- oder Systemlaufzeit auf und sind oft schwer zurückzuverfolgen. Da die Programmroutinen komplex sind und Datenobjekte aufeinander referenzieren, ist es extrem aufwendig, die Speicherbereinigung manuell oder durch selbst programmierte Verfahren vorzunehmen. Eine Garbage Collection nimmt dem Programmierer diese Aufgabe ab.

Verschiedene GC-Methoden

Es existieren zahlreiche verschiedene Methoden, wie eine automatische Speicherbereinigung durchgeführt werden kann. Abhängig vom jeweiligen Anwendungsfall und der Programmumgebung eignen sich die Methoden unterschiedlich gut. Zwei häufig verwendete Methoden sind das Reference-Counting und das Mark-and-Sweep. Reference-Counting identifiziert die nicht mehr benötigten Objekte durch fehlende Referenzen und löscht sie. Allerdings kann es passieren, dass sich zwei nicht mehr benötigte Objekte gegenseitig referenzieren und das Reference-Counting sie nicht löscht. Mark-and-Sweep kennt dieses Problem nicht. Die Methode erkennt aktive Objekte, indem sie von einem Root-Objekt ausgehend die referenzierten und erreichbaren Objekte markiert. Alle nicht erreichbaren Objekte sind nicht markiert und können per Sweeping gelöscht werden.

Kommentare werden geladen....

Was meinen Sie zu diesem Thema?

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45906615 / Definitionen)