Sobes.tech
Junior — Middle

Qual algoritmo de recolha de lixo aplicarías no teu trabalho?

sobes.tech IA

Resposta da IA

A escolha do algoritmo de recolha de lixo (GC) em Java depende dos requisitos da aplicação:

  • Serial GC — recolha simples de um único thread, adequado para aplicações pequenas com requisitos baixos de latência.

  • Parallel GC — multi-thread, otimizado para máxima capacidade de throughput, adequado para aplicações de servidor com grande volume de memória.

  • CMS (Concurrent Mark Sweep) — minimiza as pausas de recolha, funciona em paralelo com a aplicação, adequado para aplicações com requisitos de baixa latência.

  • G1 (Garbage First) — recolha moderno, equilibra entre capacidade de throughput e pausas curtas, funciona bem com grandes heaps.

  • ZGC e Shenandoah — recolhas de baixa latência para heaps muito grandes e aplicações críticas em termos de atrasos (a partir do Java 11+).

Na maioria dos casos, para aplicações modernas, escolheria o G1 GC, pois escala bem e fornece um equilíbrio entre desempenho e latência.

Exemplo de ativação do G1 GC:

java -XX:+UseG1GC -jar myapp.jar