
Performance-Optimierung
Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, Performance-Best-Practices
1Was ist der Hauptvorteil von BenchmarkDotNet gegenüber einer einfachen Stopwatch beim Messen der Performance?
Was ist der Hauptvorteil von BenchmarkDotNet gegenüber einer einfachen Stopwatch beim Messen der Performance?
Antwort
BenchmarkDotNet führt Warm-ups durch, misst mehrere Iterationen mit statistischer Stabilisierung und vermeidet JIT- und GC-Verzerrungen. Eine einfache Stopwatch kann nicht repräsentative Ergebnisse liefern, da sie diese Faktoren nicht kontrolliert. BenchmarkDotNet liefert zudem detaillierte Metriken wie die Speicherallokationen pro Operation.
2Welches Microsoft-Tool wird empfohlen, um Speicherallokationen zu analysieren und Speicherlecks in der Produktion zu identifizieren?
Welches Microsoft-Tool wird empfohlen, um Speicherallokationen zu analysieren und Speicherlecks in der Produktion zu identifizieren?
Antwort
dotMemory von JetBrains und PerfView von Microsoft sind die empfohlenen Tools für das Memory-Profiling in .NET. PerfView ist kostenlos, Open-Source und kann Heap-Allokationen, Stack-Traces und GC-Ereignisse analysieren. Es ist besonders geeignet, um Speicherlecks in der Produktion ohne signifikanten Overhead zu diagnostizieren.
3Wie identifiziert man versteckte Speicherallokationen in einer LINQ-Methode wie FirstOrDefault()?
Wie identifiziert man versteckte Speicherallokationen in einer LINQ-Methode wie FirstOrDefault()?
Antwort
Die Verwendung von BenchmarkDotNet mit dem MemoryDiagnoser-Attribut zeigt die Allokationen pro Operation. LINQ-Lambdas erzeugen über Delegates versteckte Allokationen. Das Ersetzen durch eine einfache foreach-Schleife eliminiert diese Allokationen. PerfView kann auch Allokations-Stack-Traces erfassen, um die Quellen zu identifizieren.
Welches Attribut sollte in BenchmarkDotNet zur Messung der CPU-Performance und zur Identifizierung von Code-Hotspots verwendet werden?
Wie interpretiert man ein BenchmarkDotNet-Ergebnis mit Mean: 125.3 ns, StdDev: 45.2 ns?
+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
Memory Management & GC
Reaktive Programmierung
Async/await & Patterns
.NET Design Patterns
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