Garbage Collection
Automatic reclamation of heap objects that are no longer reachable, using collector-specific trade-offs among throughput, pause time, memory and CPU overhead.
Reachability, Not Scope
Garbage collection reclaims objects based on reachability from runtime roots rather than simply because a local variable left lexical scope.
Collectors make different trade-offs. A workload optimized for throughput can accept different pause behavior from a latency-sensitive service.
Performance Boundary
Allocation rate, live-set size, object lifetime distribution and heap sizing matter more than the collector name alone. A GC pause can be a symptom of excessive allocation or memory pressure rather than the original cause.
Java runtime behavior should therefore be measured with allocation and pause data together.
See Runtime Optimization in Java Systems.