Gestión de la memoria - Recolección de basura en JavaScript

Gestión de la memoria - Recolección de basura en JavaScript
JavaScript no proporciona mucho en cuanto a la gestión de la memoria o la recolección de basura porque no podemos usar directamente las operaciones relacionadas con la memoria, pero para fines de conocimiento, es bueno saber cómo funciona.

En el lenguaje C, los desarrolladores asignan o desaniman la memoria con métodos MALLOC (), CALLOC (), REALLOC () y Free () Free ().

Los valores de JavaScript funcionan a medida que los valores se asignan después de la creación de objetos o cadenas; y se liberan automáticamente cuando se completa el proceso, por lo que todo este proceso se conoce como recolección de basura. El ciclo de vida de gestión de memoria se basa en 3 pasos.

  1. Asignación de memoria
  2. Utilización de la memoria
  3. Liberar la memoria

Asignación de memoria en JavaScript

Después de introducir la variable, JavaScript asigna memoria para sus variables asignadas. En el punto en que la memoria ya no es útil, se lanzará la memoria. Cuando se libera la memoria, entonces surgen varios problemas, incluida la filtración de la memoria. La tarea más difícil es descubrir la memoria que no es útil y posteriormente desanimará la memoria de manera eficiente con la ayuda de un recolector de basura. El recolector de basura rastrea la memoria que no es necesaria, pero la tarea más difícil es rastrear la memoria no utilizada.

Si declara valores a variables, entonces la asignación de memoria en JavaScript se asigna automáticamente.

En estos ejemplos, la memoria de variable1 asignada para un número, mientras que la cadena se asigna en la memoria de la variable2 como se muestra a continuación.

var variable1 = 100;
var variable2 = "asignación de memoria";

Si desea asignar memoria para numerosos objetos, use el siguiente código.

var variable3 =
Variable4: 5,
variable5: 'prueba'

Array asignada en la memoria de Variable6 como se muestra a continuación.

var variable6 = [1,2,3,4,5]

También puede asignar memoria para obtener métodos distintos. Aquí está el código para asignar memoria para un método.

función function_name (x)
return x + 20;

Recolector de basura

El proceso de asignación de memoria y liberación de la memoria cuando no se requiere se conoce como recolección de basura. Los algoritmos se utilizan para averiguar qué memoria es irrelevante para las tareas. Esta sección trata explícitamente los algoritmos principales utilizados en la recolección de basura y sus limitaciones.

Algoritmo de recolección de basura de conteo de referencia

Los algoritmos de recolección de basura de referencia se ven como el gran tipo fundamental de recolección de basura. Este algoritmo no solo decide si algún recurso es significativo o no, sino que también filtra la memoria para decidir si un elemento tiene algunas otras instancias que se refieren a él. Una instancia que tiene referencias nulas se contabiliza como basura.

Algoritmo de Mark & ​​Sweet

Un recolector de basura ayuda a liberar la memoria siempre que una instancia sea inaccesible, en lugar de un cero que se refiere a un objeto. Inicialmente, el recolector de basura busca todas las instancias globales o raíz junto con sus referencias de objetos. A través de este algoritmo, el coleccionista distinguirá entre las instancias accesibles e inaccesibles. Posteriormente, las instancias inaccesibles serán recolectadas automáticamente por el recolector de basura.

Conclusión

JavaScript asigna eficientemente la memoria y, posteriormente, el recolector de basura ayuda a detectar esta memoria asignada y recuperarla siempre que la memoria no sea útil. Aprendimos cómo podemos administrar la memoria y recolectar basura en JavaScript en este artículo. Debemos tener cuidado de que debamos implementar programas de software que no puedan causar una referencia circular a variables. Tenemos que asegurarnos de que no podemos programar nada que arroje variables del ciclo de basura.