Tabla de contenido:
- Definición - ¿Qué significa Garbage Collection (GC)?
- Techopedia explica la recolección de basura (GC)
Definición - ¿Qué significa Garbage Collection (GC)?
La recolección de basura (GC) es un enfoque dinámico para la administración automática de memoria y la asignación de almacenamiento dinámico que procesa e identifica los bloques de memoria inactiva y reasigna el almacenamiento para su reutilización. El propósito principal de la recolección de basura es reducir las pérdidas de memoria.
La implementación de GC requiere tres enfoques principales, como sigue:
- Marcar y barrer: en el proceso cuando se agota la memoria, el GC localiza toda la memoria accesible y luego recupera la memoria disponible.
- Recuento de referencias: los objetos asignados contienen un recuento de referencias del número de referencia. Cuando el recuento de memoria es cero, el objeto es basura y luego se destruye. La memoria liberada vuelve al montón de memoria.
- Copiar colección: hay dos particiones de memoria. Si la primera partición está llena, el GC localiza todas las estructuras de datos accesibles y las copia en la segunda partición, compactando la memoria después del proceso del GC y permitiendo memoria libre continua.
Algunos lenguajes de programación y plataformas con GC incorporado (por ejemplo, Java, Lisp, C # y .Net) autogestionan pérdidas de memoria, lo que permite una programación más eficiente.
Techopedia explica la recolección de basura (GC)
El enfoque dinámico de la recolección de basura para la asignación automática del montón aborda errores comunes y costosos que a menudo resultan en defectos del programa en el mundo real cuando no se detectan.
Debido a que son difíciles de identificar y reparar, los errores de asignación son costosos. Por lo tanto, la recolección de basura es considerada por muchos como una característica esencial del lenguaje que facilita el trabajo del programador con una gestión de asignación de montón manual más baja. Sin embargo, GC no es perfecto y se deben considerar los siguientes inconvenientes:
- Al liberar memoria, GC consume recursos informáticos.
- El proceso de GC es impredecible, lo que resulta en retrasos de sesión dispersos.
- Cuando las referencias de objeto no utilizadas no se eliminan manualmente, el GC provoca pérdidas de memoria lógica.
- GC no siempre sabe cuándo procesar en entornos de memoria virtual de computadoras de escritorio modernas.
- El proceso de GC interactúa de manera deficiente con los sistemas de memoria caché y virtual, lo que resulta en dificultades de ajuste del rendimiento.