Sobes.tech
Junior

¿Qué es un recolector de basura (Garbage Collector)?

sobes.tech AI

Respuesta de la IA

Mecanismo automático de gestión de memoria que libera objetos no utilizados en el montón.

Principios de funcionamiento:

  • Detección de alcanzabilidad de objetos: Rastrea los objetos a los que hacen referencia los objetos vivos (accesibles) desde las raíces (por ejemplo, la pila de hilos).
  • Liberación de objetos inalcanzables: Los objetos a los que no hay referencias se consideran "basura" y su memoria puede ser reutilizada.

Tipos de recolectores de basura (dependen del lenguaje/plataforma):

  • Marcar y Barrer: Marca los objetos alcanzables (marcación), luego recorre el montón y libera los no marcados (limpieza). Puede causar fragmentación de memoria.
  • Copiar: Divide el montón en dos partes. Copia los objetos vivos a la nueva parte, luego limpia la antigua. Previene la fragmentación, pero requiere más memoria.
  • Generacional: Divide los objetos por edad en generaciones. Recolecta basura con mayor frecuencia en la "generación joven", donde la mayoría de los objetos no viven mucho tiempo.

Ventajas:

  • Reducción de la probabilidad de fugas de memoria.
  • Simplificación del desarrollo (no es necesario liberar memoria explícitamente).

Desventajas:

  • Puede causar retrasos (pausas) en la ejecución del programa durante la recolección.
  • Tiempo de recolección impredecible.