Middle+
How does the garbage collector work in Go? Describe the phases and algorithm.
sobes.tech AI
Answer from AI
Go uses a trigger-based, concurrent, mark-and-sweep garbage collector with low latency.
Main phases of GC:
- Mark — the collector traverses all root objects, marking reachable objects.
- Sweep — unmarked objects are freed.
The algorithm runs concurrently with the program execution, minimizing pauses. Go GC uses a trigger based on the amount of allocated memory and time to initiate garbage collection.
The process roughly looks like this:
- The program allocates memory.
- When a threshold is reached, GC is triggered.
- GC marks objects concurrently with the program.
- After marking, unused objects are cleaned up.
This allows efficient memory management with minimal delays, which is important for server and multithreaded applications.