Garbage Collection: Automatyczne Sprzątanie Pamięci

Automatyczne usuwanie nieużywanych obiektów z pamięci.

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: Automatyczne Sprzątanie Pamięci"]:::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;

      

🧒 Wyjaśnij jak 5-latkowi

To jak robot sprzątający, który zabiera zabawki, którymi już nikt się nie bawi, aby w pokoju zawsze było miejsce na nowe.

🤓 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.

📚 Źródła