.NET

Memory Management & GC

Garbage Collection, gerações, finalização, IDisposable, using statement, vazamentos de memória, profiling

22 perguntas de entrevista·
Senior
1

O que é o Garbage Collector (GC) no .NET?

Resposta

O Garbage Collector é um mecanismo automático de gerenciamento de memória que libera os objetos não utilizados no managed heap. Ele é executado automaticamente em segundo plano para evitar vazamentos de memória, diferentemente de C/C++ onde a memória precisa ser liberada manualmente. O GC analisa as referências dos objetos e coleta aqueles que não estão mais acessíveis a partir das roots da aplicação.

2

Quais são as três gerações do Garbage Collector no .NET?

Resposta

O GC do .NET utiliza três gerações: Gen0 (objetos jovens e efêmeros, coletados com frequência), Gen1 (objetos de vida média, zona de buffer entre Gen0 e Gen2) e Gen2 (objetos de vida longa, coletados raramente por ser custoso). Esse sistema geracional otimiza o desempenho coletando primeiro os objetos efêmeros (Gen0), que representam 80-90% dos objetos, evitando escanear com frequência os objetos persistentes (Gen2).

3

O que é o Large Object Heap (LOH) no .NET?

Resposta

O Large Object Heap é um espaço de memória separado para objetos de 85 KB ou mais, pertencente logicamente à Gen2. Diferentemente do heap padrão, que é compactado regularmente, o LOH NÃO é compactado por padrão para evitar o custo de copiar objetos grandes. Isso pode causar fragmentação de memória. Desde o .NET 4.5.1, a compactação do LOH pode ser ativada manualmente com GCSettings.LargeObjectHeapCompactionMode.

4

Qual é o papel do padrão IDisposable no .NET?

5

O que a instrução using faz em C#?

+19 perguntas de entrevista

Domine .NET para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis