.NET

Memory Management & GC

Garbage Collection, generaties, finalisatie, IDisposable, using-statement, geheugenlekken, profiling

22 gespreksvragen·
Senior
1

Wat is de Garbage Collector (GC) in .NET?

Antwoord

De Garbage Collector is een automatisch mechanisme voor geheugenbeheer dat ongebruikte objecten op de managed heap vrijgeeft. Het draait automatisch op de achtergrond om geheugenlekken te voorkomen, in tegenstelling tot C/C++ waar geheugen handmatig moet worden vrijgegeven. De GC analyseert objectreferenties en verzamelt de objecten die niet langer bereikbaar zijn vanuit de roots van de applicatie.

2

Wat zijn de drie generaties van de Garbage Collector in .NET?

Antwoord

De .NET-GC gebruikt drie generaties: Gen0 (jonge, kortlevende objecten, vaak verzameld), Gen1 (objecten met gemiddelde levensduur, bufferzone tussen Gen0 en Gen2) en Gen2 (langlevende objecten, zelden verzameld omdat het duur is). Dit generatiesysteem optimaliseert de prestaties door eerst de kortlevende objecten (Gen0) te verzamelen, die 80-90% van de objecten vormen, terwijl het frequent scannen van persistente objecten (Gen2) wordt vermeden.

3

Wat is de Large Object Heap (LOH) in .NET?

Antwoord

De Large Object Heap is een aparte geheugenruimte voor objecten van 85 KB of groter, die logisch tot Gen2 behoort. Anders dan de standaard heap, die regelmatig wordt gecompacteerd, wordt de LOH standaard NIET gecompacteerd om de kosten van het kopiëren van grote objecten te vermijden. Dit kan geheugenfragmentatie veroorzaken. Sinds .NET 4.5.1 kan LOH-compactie handmatig worden ingeschakeld met GCSettings.LargeObjectHeapCompactionMode.

4

Wat is de rol van het IDisposable-pattern in .NET?

5

Wat doet de using-statement in C#?

+19 gespreksvragen

Beheers .NET voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis