Lar Desenvolvimento O que é coleta de lixo (gc)? - o que é techopedia

O que é coleta de lixo (gc)? - o que é techopedia

Índice:

Anonim

Definição - O que significa Coleta de Lixo (GC)?

A coleta de lixo (GC) é uma abordagem dinâmica para gerenciamento automático de memória e alocação de heap que processa e identifica blocos de memória morta e realoca o armazenamento para reutilização. O principal objetivo da coleta de lixo é reduzir o vazamento de memória.

A implementação do GC requer três abordagens principais, como a seguir:

  • Marcar e varrer - Em processo quando a memória acaba, o GC localiza toda a memória acessível e recupera a memória disponível.
  • Contagem de referência - os objetos alocados contêm uma contagem de referência do número de referência. Quando a contagem de memória é zero, o objeto é lixo e é destruído. A memória liberada retorna ao heap de memória.
  • Coleção de cópias - Existem duas partições de memória. Se a primeira partição estiver cheia, o GC localizará todas as estruturas de dados acessíveis e as copiará para a segunda partição, compactando a memória após o processo do GC e permitindo memória livre contínua.

Algumas linguagens de programação e plataformas com GC incorporado (por exemplo, Java, Lisp, C # e .Net) gerenciam vazamentos de memória, permitindo uma programação mais eficiente.

Techopedia explica Coleta de Lixo (GC)

A abordagem dinâmica da coleta de lixo para a alocação automática de heap aborda erros comuns e dispendiosos que geralmente resultam em defeitos de programa no mundo real quando não são detectados.

Por serem difíceis de identificar e reparar, os erros de alocação são caros. Portanto, a coleta de lixo é considerada por muitos como um recurso essencial da linguagem que facilita o trabalho do programador com um gerenciamento de alocação manual de heap mais baixo. No entanto, o GC não é perfeito e as seguintes desvantagens devem ser consideradas:

  • Ao liberar memória, o GC consome recursos de computação.
  • O processo do GC é imprevisível, resultando em atrasos dispersos na sessão.
  • Quando as referências de objetos não utilizados não são descartadas manualmente, o GC causa vazamentos de memória lógica.
  • O GC nem sempre sabe quando processar nos ambientes de memória virtual dos modernos computadores de mesa.
  • O processo do GC interage mal com os sistemas de cache e memória virtual, resultando em dificuldades de ajuste de desempenho.
Esta definição foi escrita no contexto da Programação Geral
O que é coleta de lixo (gc)? - o que é techopedia