Diese Webseite verwendet Cookies, um die Nutzung der Webseite zu ermöglichen und zu verbessern.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.     zum Impressum
       
Glossar-Buchstabe: G

Garbage Collection

Garbage Collection | Programmierung Berlin
Ein Form der automatischen Speicherverwaltung, die nicht mehr benötigte Objekte im Speicher eines Computers identifiziert und freigibt, um Speicherlecks zu vermeiden und die Effizienz zu erhöhen.
Programmierung

Haben Sie Interesse an individuell erstellten Software-Lösungen? Wir freuen uns auf Ihre Anfrage

Garbage Collection (GC) ist ein zentraler Mechanismus moderner Speicherverwaltung in der Softwareentwicklung, dessen Hauptfunktion darin besteht, nicht mehr genutzten Speicher wieder freizugeben. Im Kontext der Softwareentwicklung ist Speichermanagement eine Schlüsselfunktion, da jede Anwendung bei ihrer Ausführung Speicherressourcen benötigt. Programme, die dynamisch Speicher allokieren – beispielsweise für neue Objekte –, müssen diesen Speicher irgendwann wieder freigeben, wenn die Objekte nicht mehr benötigt werden.

Ohne Garbage Collection liegt die Verantwortung für das Freigeben des Speichers in den Händen des Programmierers. Dies kann zu Fehlern führen, insbesondere zu sogenannten Speicherlecks (memory leaks), bei denen Programme Speicher belegen, der nicht mehr freigegeben wird, auch wenn er nicht mehr benötigt wird. Über die Zeit hinweg können diese Speicherlecks zu einem Mangel an verfügbaren Speicherressourcen führen und die Leistungsfähigkeit des Systems verschlechtern oder sogar zum Absturz von Anwendungen führen.

Die Garbage Collection automatisiert diesen Prozess, indem sie periodisch durch die im Speicher liegenden Objekte geht und prüft, welche davon nicht länger von der Anwendung erreicht werden können. Diese "unreachable" Objekte gelten als überflüssig und ihr Speicher wird vom GC-System zur Wiederverwendung freigegeben. Die Kriterien dafür, ob ein Objekt erreichbar ist, hängen von der jeweiligen Implementierung der Garbage Collection und der Programmsprache ab. Viele Programmiersprachen, die einen automatisierten GC anbieten – wie Java, C#, oder Python –, verfügen über eigene Algorithmen und Strategien zur Identifikation unbenutzter Objekte.

Garbage Collectors können unterschiedliche Ansätze verfolgen, um den Speicher zu verwalten, darunter:

  1. Referenzzählung (Reference Counting): Beim Referenzzählen wird für jedes Objekt gezählt,wie oft darauf verwiesen wird. Erreicht die Anzahl der Referenzen den Wert Null, kann das Objekt freigegeben werden.
  1. Mark-and-Sweep: Dieser Algorithmus durchläuft alle Objekte, markiert lebende Objekte und räumt anschließend alle nicht markierten Objekte auf.
  1. Stop-and-Copy: Dabei teilt sich der verfügbare Speicher in zwei Blöcke. Die Applikation nutzt einen Block, während der andere leer steht. Wenn der Garbage Collector aktiv wird, werden alle lebenden Objekte in den leeren Block kopiert und der alte Block wird freigegeben.
  1. Generationelle GC: Diese GC-Art segmentiert den Speicher in Generationen, basierend darauf, wie lang ein Objekt bereits im Speicher überlebt hat. Typischerweise werden Objekte, die das überstehen, was als "Jungbrunnen" bezeichnet wird, weniger oft überprüft, unter der Annahme, dass sie wahrscheinlich auch weiterhin benötigt werden.

Garbage Collection trägt wesentlich zur Stabilität und Effizienz von Softwareanwendungen bei. Jedoch ist sie nicht frei von Herausforderungen und Kompromissen, wie etwa die Pausenzeiten oder Verzögerungen (garbage collection pauses), die während der Freigabe von Speicher auftreten können. Entwickler müssen die Eigenschaften des GC-Systems und die Anforderungen ihrer Anwendungen sorgfältig abwägen, um die bestmögliche Leistungsfähigkeit zu gewährleisten.


veröffentlicht am: 29.03.2024 01:33   |  bearbeitet am: 28.03.2024 19:45
Cookie-Richtlinie