.NET

Memory Management & GC

Garbage Collection, Generationen, Finalisierung, IDisposable, using-Statement, Speicherlecks, Profiling

22 Interview-Fragen·
Senior
1

Was ist der Garbage Collector (GC) in .NET?

Antwort

Der Garbage Collector ist ein automatischer Mechanismus zur Speicherverwaltung, der nicht mehr verwendete Objekte auf dem Managed Heap freigibt. Er läuft automatisch im Hintergrund, um Speicherlecks zu verhindern, anders als bei C/C++, wo Speicher manuell freigegeben werden muss. Der GC analysiert Objektreferenzen und sammelt diejenigen ein, die von den Roots der Anwendung aus nicht mehr erreichbar sind.

2

Was sind die drei Generationen des Garbage Collectors in .NET?

Antwort

Der .NET-GC verwendet drei Generationen: Gen0 (junge, kurzlebige Objekte, häufig eingesammelt), Gen1 (Objekte mittlerer Lebensdauer, Pufferzone zwischen Gen0 und Gen2) und Gen2 (langlebige Objekte, selten eingesammelt, da aufwändig). Dieses generationenbasierte System optimiert die Leistung, indem es zuerst die kurzlebigen Objekte (Gen0) einsammelt, die 80–90 % der Objekte ausmachen, und das häufige Scannen persistenter Objekte (Gen2) vermeidet.

3

Was ist der Large Object Heap (LOH) in .NET?

Antwort

Der Large Object Heap ist ein separater Speicherbereich für Objekte von 85 KB oder größer, der logisch zu Gen2 gehört. Anders als der Standard-Heap, der regelmäßig komprimiert wird, wird der LOH standardmäßig NICHT komprimiert, um die Kosten für das Kopieren großer Objekte zu vermeiden. Dies kann zu Speicherfragmentierung führen. Seit .NET 4.5.1 kann die LOH-Komprimierung manuell mit GCSettings.LargeObjectHeapCompactionMode aktiviert werden.

4

Welche Rolle spielt das IDisposable-Pattern in .NET?

5

Was bewirkt die using-Anweisung in C#?

+19 Interview-Fragen

Meistere .NET für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten