Junior — Middle
¿Cómo se realiza la recolección automática de basura en los lenguajes de programación gestionados?
sobes.tech AI
Respuesta de la IA
La recolección de basura automática (Garbage Collection, GC) en lenguajes gestionados como C# se implementa mediante un mecanismo especial que rastrea los objetos en la memoria y libera aquellos a los que ya no hay referencias.
Principios básicos del GC:
- Seguimiento de referencias: El GC determina qué objetos son alcanzables desde referencias raíz (por ejemplo, variables locales, campos estáticos).
- Detección de objetos inalcanzables: Los objetos a los que no hay referencias se consideran basura.
- Liberación de memoria: El GC libera la memoria ocupada por objetos inalcanzables.
- Generaciones: Para optimizar la recolección de basura, se divide en generaciones (Gen 0, Gen 1, Gen 2), lo que permite recolectar con más frecuencia los objetos jóvenes y menos los de larga duración.
Ejemplo en C#:
class Program
{
static void Main()
{
var obj = new object();
// se usa obj
obj = null; // el objeto se vuelve inalcanzable
GC.Collect(); // ejecución forzada del recolector de basura (poco común en aplicaciones reales)
}
}
De esta manera, el programador se libera de gestionar manualmente la memoria, lo que reduce errores relacionados con fugas de memoria.