
Memory Management & GC
Garbage Collection, Generationen, Finalisierung, IDisposable, using-Statement, Speicherlecks, Profiling
1Was ist der Garbage Collector (GC) in .NET?
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.
2Was sind die drei Generationen des Garbage Collectors in .NET?
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.
3Was ist der Large Object Heap (LOH) in .NET?
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.
Welche Rolle spielt das IDisposable-Pattern in .NET?
Was bewirkt die using-Anweisung in C#?
+19 Interview-Fragen
Weitere .NET-Interviewthemen
C#-Grundlagen
LINQ & Delegates
C#-Sprachgrundlagen
ASP.NET Core Grundlagen
ASP.NET Core Request-Lebenszyklus
Configuration & Settings
Anwendungslebenszyklus
Dependency Injection
Entity Framework Core
Minimal APIs
Web-API-Entwicklung
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
JSON-Serialisierung
Entity Framework Core fortgeschritten
Erweiterte C#-Funktionen
Clean Architecture
Logging, Monitoring & Observability
Unit-Tests & xUnit
Integrationstests
Docker & Containerization
NuGet Package Management
Reaktive Programmierung
Async/await & Patterns
.NET Design Patterns
Performance-Optimierung
Sicherheit & Best Practices
SignalR & Echtzeit
Microservices-Architektur
Meistere .NET für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten