Skip to content

Garbage Collection

Garbage Collection (GC), das automatische und mehr oder weniger intelligente Entfernen von Objekten aus dem Speicherbereich für dynamische Speicherzuweisungen (Heap), ist eine ungemein nützliche Sache. Der Programmierer muss sich beim Entwickeln einer Anwendung nicht mehr Gedanken über die Speicherverwaltung (Anfordern und Freigeben von Speicher) machen, sondern kann sich den Details des eigentlich zu lösenden Problems hingeben.

Viele Hochsprachen machen von GC Gebrauch und entlasten somit den Programmierer. Java, Lisp, Smalltalk und Python sind solche Sprachen. Man kann fast sagen, je moderner die Sprache, desto wahrscheinlicher verwendet sie GC. Das liegt daran, dass GC, je nach eingesetzter Variante, Speicher und Rechenzeit benötigt. Früher (außer in Lisp) konnte man sich solchen Luxus nicht leisten. Heutzutage und Dank Moores Gesetz sind diese Kosten aber nicht mehr so wesentlich. Die Kosten, die durch die Arbeitszeit eines Programmierers anfallen sind im Regelfall höher als die Kosten für bessere Hardware. In dieser Hinsicht rückständige Sprachen wie C und C++ bieten GC meist durch das Bereitstellen von Bibliotheken an. Durch das feste Integrieren von GC in den Sprachkern, wie das beispielsweise bei Java der Fall ist, kann jedoch der Compiler (der im Fall von Java Bytecode erzeugt) Optimierungen vornehmen, so dass ein nativer Garbage Collector effizienter arbeiten kann als ein durch eine Bibliothek aufgesetzter.

Ich denke, es ist auch für jemanden, der in einer Hochsprache hackt von Vorteil über solche Mechanismen ansatzweise Bescheid zu wissen. Richard Jones’s Garbage Collection page bietet eine umfassende Referenz zum Thema. Die Artikel An Introduction to Garbage Collection – Part I und An Introduction to Garbage Collection – Part II liefern eine gute Einführung in dieses interessante Themengebiet.

Verwandte Artikel

Post a Comment

Your email is never published nor shared. Required fields are marked *