Lar Áudio O que é um coletor de lixo? - o que é techopedia

O que é um coletor de lixo? - o que é techopedia

Índice:

Anonim

Definição - O que significa Garbage Collector?

Um coletor de lixo é um software que executa o gerenciamento automático de memória. Seu trabalho é liberar qualquer memória não utilizada e garantir que nenhuma memória seja liberada enquanto ainda estiver em uso. Algumas linguagens, como Java e .NET, apresentam coleta automática de lixo, enquanto outras, como C / C ++, exigem que o programador gerencie manualmente a memória.

Techopedia explica Garbage Collector

A coleta de lixo foi introduzida pela primeira vez pelo criador do Lisp John McCarthy para facilitar o gerenciamento manual de memória ao trabalhar com a linguagem Lisp.

As três principais técnicas usadas por um coletor de lixo para executar o gerenciamento automático de memória são as seguintes:

  • Contagem de referência - a referência a cada objeto é contada usando uma variável de contador. Quando o contador chega a zero, isso indica que o objeto não é mais necessário e, portanto, é reciclado.
  • Marcar e varrer - Uma travessia recursiva de todos os objetos alcançáveis ​​é realizada em todas as regiões de dados e os objetos alcançáveis ​​são marcados. Os objetos não marcados são então reciclados.
  • Parar e copiar - O heap de memória é dividido em duas seções: uma seção que contém os objetos e uma seção vazia para a qual os objetos são transferidos (copiados) se forem marcados. Os objetos não marcados na primeira seção são reciclados esvaziando-o.

Quando um bloco de memória atribuído a um ponteiro / objeto é liberado, o ponteiro / objeto deve ser redefinido para um valor nulo; caso contrário, estará danificado, ou seja, apontando para um bloco de memória inválido.

A coleta de lixo ajuda a reduzir bugs e riscos de segurança causados ​​por indicadores pendentes e problemas de vazamento de memória.

As desvantagens de usar um coletor de lixo incluem a sobrecarga extra de recursos e desempenho. A execução de um coletor de lixo também pode diminuir a velocidade do sistema e, portanto, diminuir seu desempenho.

O que é um coletor de lixo? - o que é techopedia