Müllabfuhr (gc)

Definition - Was bedeutet Garbage Collection (GC)?

Garbage Collection (GC) ist ein dynamischer Ansatz zur automatischen Speicherverwaltung und Heap-Zuweisung, der tote Speicherblöcke verarbeitet und identifiziert und Speicher zur Wiederverwendung neu zuweist. Der Hauptzweck der Speicherbereinigung besteht darin, Speicherlecks zu reduzieren.

Die GC-Implementierung erfordert drei Hauptansätze:

  • Mark-and-Sweep - Wenn der Speicher knapp wird, sucht der GC den gesamten verfügbaren Speicher und stellt den verfügbaren Speicher wieder her.
  • Referenzzählung - Zugeordnete Objekte enthalten eine Referenzzählung der Referenznummer. Wenn die Speicheranzahl Null ist, ist das Objekt Müll und wird dann zerstört. Der freigegebene Speicher kehrt zum Speicherheap zurück.
  • Sammlung kopieren - Es gibt zwei Speicherpartitionen. Wenn die erste Partition voll ist, sucht der GC alle zugänglichen Datenstrukturen und kopiert sie auf die zweite Partition. Dabei wird der Speicher nach dem GC-Prozess komprimiert und ein kontinuierlicher freier Speicher ermöglicht.

Einige Programmiersprachen und Plattformen mit integriertem GC (z. B. Java, Lisp, C # und .Net) verwalten Speicherlecks selbst und ermöglichen so eine effizientere Programmierung.

Technische.me erklärt Garbage Collection (GC)

Der dynamische Ansatz der Garbage Collection zur automatischen Heap-Zuweisung behebt häufige und kostspielige Fehler, die häufig zu Programmfehlern in der realen Welt führen, wenn sie nicht erkannt werden.

Zuordnungsfehler sind kostspielig, da sie schwer zu identifizieren und zu reparieren sind. Daher wird die Speicherbereinigung von vielen als ein wesentliches Sprachmerkmal angesehen, das die Arbeit des Programmierers durch eine geringere manuelle Verwaltung der Heapzuweisung erleichtert. GC ist jedoch nicht perfekt und die folgenden Nachteile sollten berücksichtigt werden:

  • Beim Freigeben von Speicher verbraucht GC Rechenressourcen.
  • Der GC-Prozess ist unvorhersehbar, was zu vereinzelten Sitzungsverzögerungen führt.
  • Wenn nicht verwendete Objektreferenzen nicht manuell entsorgt werden, führt GC zu logischen Speicherverlusten.
  • GC weiß nicht immer, wann in virtuellen Speicherumgebungen moderner Desktop-Computer verarbeitet werden muss.
  • Der GC-Prozess interagiert schlecht mit Cache- und virtuellen Speichersystemen, was zu Schwierigkeiten bei der Leistungsoptimierung führt.

Diese Definition wurde im Rahmen der Allgemeinen Programmierung geschrieben