NEW
Also known as: Memory Management, Cleanup Process
An automatic process that reclaims memory by removing unreachable or unused objects during program execution.
DESCRIPTION
Garbage collection (GC) automates memory reclamation by identifying objects that are no longer reachable by a program. Implementations differ (mark-and-sweep, generational, concurrent, G1, ZGC) balancing throughput and latency. GC simplifies development by preventing many memory leaks and double frees, though it can introduce pauses. Tuning heap sizes and GC algorithms is critical for performance in high-throughput or low-latency systems.
ALTERNATIVE DEFINITIONS
Oracle Java SE
Garbage collection is the process of automatically freeing memory by discarding objects that are no longer referenced by any reachable code.
Defines GC in the JVM context as reclaiming unreachable objects.
Microsoft Learn
The garbage collector is an automatic memory management mechanism that frees memory occupied by objects that are no longer in use by the application.
Emphasizes automatic memory management in .NET.
Wikipedia
In computer science, garbage collection (GC) is a form of automatic memory management that frees memory by reclaiming garbage—memory occupied by objects that are no longer in use.
General definition across languages and runtimes.
RELATED TERMS
Heap Stack Mark-and-Sweep Generational GC Stop-the-World Reference Counting JVM .NET CLR Delays Throughput
COMPETING TERMS
Manual Memory Management
KNOWLEDGE AREAS
Software Engineering Infrastructure
TARGET AUDIENCE
Software Developer DevOps Engineer AI Engineer Data Engineer
EXTERNAL SOURCES
- Wikipedia - Garbage collection (computer science)
- Microsoft - .NET GC fundamentals
- Oracle - Java GC tuning guide
- Aleksey Shipilev - Shenandoah GC deep dive slides
TOP QUESTIONS
What is the main benefit of Garbage Collection?
It automates memory management, reducing memory leaks and freeing developers from manual allocation and deallocation responsibilities.
Category: Benefit
What is a common downside of Garbage Collection?
Stop-the-world pauses can hurt latency-sensitive applications. Tuning and low-pause collectors mitigate this.
Category: Risk
How do generational GCs work?
They separate objects by age, collecting young generations more frequently because most objects die young, improving efficiency.
Category: Explanation
What is the difference between Reference Counting and tracing GC?
Reference counting tracks object references; tracing GC discovers reachable objects via graph traversal, handling cycles better.
Category: Comparison
How can I reduce GC pauses?
Tune heap regions, use concurrent collectors, reduce allocations, and optimize object lifetimes. Profile before tuning.
Category: BestPractice
When is manual memory management preferable?
In ultra-low-latency or constrained environments, manual control (e.g., C/C++) may outperform GC with careful engineering.
Category: Opinion
What metrics should I monitor for GC?
Pause time, frequency, allocation rate, promotion rate, and heap utilization guide tuning choices.
Category: Observability
Does Garbage Collection prevent all memory leaks?
No. Retained references and caches can cause leaks. GC reclaims only unreachable objects.
Category: Misunderstanding
How does GC affect throughput?
Aggressive GC can reduce throughput due to overhead. Balanced tuning optimizes both throughput and latency.
Category: Performance