.NET

Memory Management & GC

Garbage Collection, generaciones, finalización, IDisposable, using statement, fugas de memoria, profiling

22 preguntas de entrevista·
Senior
1

¿Qué es el Garbage Collector (GC) en .NET?

Respuesta

El Garbage Collector es un mecanismo automático de gestión de memoria que libera los objetos no utilizados del managed heap. Se ejecuta automáticamente en segundo plano para evitar fugas de memoria, a diferencia de C/C++ donde la memoria debe liberarse manualmente. El GC analiza las referencias de los objetos y recolecta aquellos que ya no son accesibles desde las roots de la aplicación.

2

¿Cuáles son las tres generaciones del Garbage Collector en .NET?

Respuesta

El GC de .NET utiliza tres generaciones: Gen0 (objetos jóvenes y efímeros, recolectados con frecuencia), Gen1 (objetos de vida media, zona de búfer entre Gen0 y Gen2) y Gen2 (objetos de larga vida, recolectados rara vez porque es costoso). Este sistema generacional optimiza el rendimiento recolectando primero los objetos efímeros (Gen0), que representan el 80-90% de los objetos, evitando escanear con frecuencia los objetos persistentes (Gen2).

3

¿Qué es el Large Object Heap (LOH) en .NET?

Respuesta

El Large Object Heap es un espacio de memoria separado para objetos de 85 KB o más, que pertenece lógicamente a Gen2. A diferencia del heap estándar, que se compacta regularmente, el LOH NO se compacta de forma predeterminada para evitar el coste de copiar objetos grandes. Esto puede provocar fragmentación de memoria. Desde .NET 4.5.1, la compactación del LOH puede activarse manualmente con GCSettings.LargeObjectHeapCompactionMode.

4

¿Cuál es el rol del patrón IDisposable en .NET?

5

¿Qué hace la sentencia using en C#?

+19 preguntas de entrevista

Domina .NET para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis