Garbage Collection: Automatische Speicherbereinigung

Eine Form der automatischen Speicherverwaltung.

In high-level languages like Java, C#, and JavaScript, developers don't need to manually free memory. The Garbage Collector periodicially scans the 'heap' to find objects that have no active references. By automating this, GC prevents common bugs like memory leaks and 'use-after-free' errors. However, GC can introduce latency due to 'stop-the-world' pauses where the application must wait for the collector to finish. Modern collectors minimize this using parallel or concurrent algorithms.

        graph LR
  Center["Garbage Collection: Automatische Speicherbereinigung"]:::main
  Rel_memory_management["memory-management"]:::related -.-> Center
  click Rel_memory_management "/terms/memory-management"
  Rel_cpu_cache["cpu-cache"]:::related -.-> Center
  click Rel_cpu_cache "/terms/cpu-cache"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Erkläre es wie einem 5-Jährigen

Stell dir eine Putzkolonne vor, die hinter dir aufräumt. Sobald du etwas nicht mehr benutzt, wird es weggeräumt, damit wieder Platz ist.

🤓 Expert Deep Dive

Tracing GC (like Mark-Sweep) builds a graph of all reachable objects starting from 'roots' (stack, globals). Refence Counting (used in Python/Swift) immediately deletes objects when their count hits zero. Generational GC leverages the 'weak generational hypothesis': that most objects die young. It divides the heap into 'Eden', 'Survivor', and 'Tenured' spaces, collecting the younger spaces more frequently.

📚 Quellen