Start here. This is the direct spoken answer to practice first.
Overview
GC tuning is a service-level trade-off among pause time, throughput, memory footprint, and operational predictability.
Throughput collectors prioritize total application work, while low-pause collectors spend more resources to keep individual pauses shorter. Heap size affects both headroom and collection behavior: too small creates frequent pressure, while unnecessarily large heaps consume capacity and can lengthen some work. I start from latency objectives, throughput, allocation rate, live set, and deployment memory limits. The collector and settings follow those requirements.