Gerenciamento de memória - Coleção de lixo em JavaScript

Gerenciamento de memória - Coleção de lixo em JavaScript
O JavaScript não fornece muito em termos de gerenciamento de memória ou coleta de lixo, porque não podemos usar diretamente as operações relacionadas à memória, mas para fins de conhecimento, é bom saber como ele opera.

No idioma C, os desenvolvedores alocam ou desaloculam manocados manualmente com os métodos MALLOC (), Calloc (), RealLoc () e Free ().

Os valores de JavaScript funcionam como os valores são alocados após a criação de objetos ou strings; e são libertados automaticamente quando o processo é concluído, portanto todo esse processo é conhecido como coleta de lixo. O ciclo de vida do gerenciamento de memória é baseado em 3 etapas.

  1. Alocação de memória
  2. Utilização da memória
  3. Liberando memória

Alocação de memória em JavaScript

Depois de introduzir a variável, o JavaScript aloca memória para suas variáveis ​​atribuídas. No momento em que a memória não é mais útil, a memória será liberada. Quando a memória é liberada, vários problemas, incluindo vazamento de memória, surgem. A tarefa mais difícil é descobrir a memória que não é útil e posteriormente desaloculada a memória com eficiência com a ajuda de um coletor de lixo. O coletor de lixo rastreia a memória que não é necessária, mas a tarefa mais difícil é rastrear a memória não utilizada.

Se você declarar valores para variáveis, a alocação de memória no JavaScript será atribuída automaticamente.

Nesses exemplos, a memória variável1 alocada para um número, enquanto a string é alocada na memória de variável2, como mostrado abaixo.

var variável1 = 100;
var variable2 = "alocação de memória";

Se você deseja atribuir memória para vários objetos, use o seguinte código.

var variável3 =
variável4: 5,
variável5: 'teste'

Matriz alocada na memória de variável6, como mostrado abaixo.

var variável6 = [1,2,3,4,5]

Você também pode alocar memória para métodos distintos. Aqui está o código para alocar memória para um método.

function function_name (x)
retornar x + 20;

Coletor de lixo

O processo de memória alocando e liberando a memória quando não é necessário é conhecido como coleta de lixo. Algoritmos são usados ​​para descobrir qual memória é irrelevante para as tarefas. Esta seção lida explicitamente com os principais algoritmos usados ​​na coleta de lixo e suas limitações.

Algoritmo de coleta de lixo de contagem de referência

Algoritmos de coleta de lixo de contagem de referência são vistos como o grande tipo fundamental de coleta de lixo. Esse algoritmo não apenas decide se algum recurso é significativo ou não, como também filtra a memória para decidir se um item tem outras instâncias se referindo a ele. Uma instância que tem referências nulas é explicada como lixo.

Algoritmo de Mark & ​​Sweep

Um coletor de lixo ajuda a liberar memória sempre que uma instância é inacessível, em vez de um zero referente a um objeto. Inicialmente, o coletor de lixo pesquisa todas as instâncias globais ou raiz, juntamente com suas referências de objetos. Através deste algoritmo, o coletor distinguirá entre as instâncias acessíveis e inacessíveis. Posteriormente, instâncias inacessíveis serão coletadas automaticamente pelo coletor de lixo.

Conclusão

JavaScript aloca com eficiência a memória e, posteriormente, o coletor de lixo ajuda a detectar essa memória alocada e recuperá -la sempre que a memória não for útil. Aprendemos como podemos gerenciar a memória e coletar lixo em javascript neste artigo. Precisamos tomar cuidado para que tenhamos para implementar programas de software que não podem causar referência circular a variáveis. Temos que garantir que não possamos programar nada que jogue variáveis ​​para fora do ciclo de lixo.