Para que serve o Garbage Collector

Publicado como resposta no Quora em 02/07/2019

O garbage collector (GC) serve para gerenciar automaticamente os pedidos de alocação dinâmica de memória.

Figura abaixo mostra a arquitetura do HotSpot JVM com o Garbage Collector

Fonte: Getting Started with the G1 Garbage Collector

Ele faz o gerenciamento automático e dinâmico da memória da seguinte forma:

  • Aloca memória do e a devolve para o sistema operacional.
  • Gerencia a memória para a aplicação à medida em que a aplicação requisita memória.
  • Determina quais partes da memória irão permanecer em uso pela aplicação.
  • Realoca memória não utilizada destinando-a para outra aplicação.

O Java HotSpot garbage collectors empregam várias técnicas para melhorar a eficiência dessas operações, entre elas:

  • Utiliza o algoritmo de reclamação de armazenamento de memória “generational scavenging” em conjunção com métodos de datação dos dados na memória a fim de concentrar os esforços nas áreas que contenham mais dados suscetíveis a serem reclamados.
  • Utiliza múltiplas threads para execução de operações paralelas, ou executa operações de longo tempo de execução em segundo plano enquanto rodando uma aplicação principal.
  • Procura liberar grandes blocos contíguos de memória pela compactação de objetos ativos (live objects).

Qual vantagem de se utilizar o Garbage Collector?

A vantagem de se utilizar o garbage collector é que ele libera o desenvolvedor de aplicações da tarefa manual de se fazer o gerenciamento de alocação de memória.

O desenvolvedor é liberado da necessidade de cuidar das alocações e liberações de memória e fica livre de ter que tomar conta das tarefas que alocam dinamicamente a memória.

Isso elimina completamente alguns tipos de erros relacionados a gerenciamento de memória bem como otimiza o tempo de execução da aplicação. O Java HotSpot VM possui um conjunto de algoritmos que executam essa tarefa.


Fonte, Documentação da Oracle: HotSpot Virtual Machine Garbage Collection Tuning Guide

Para saber mais: Getting Started with the G1 Garbage Collector

Last updated by at .