.NET

Performance-Optimierung

Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, Performance-Best-Practices

22 Interview-Fragen·
Senior
1

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.

2

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.

3

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.

4

Welches Attribut sollte in BenchmarkDotNet zur Messung der CPU-Performance und zur Identifizierung von Code-Hotspots verwendet werden?

5

Wie interpretiert man ein BenchmarkDotNet-Ergebnis mit Mean: 125.3 ns, StdDev: 45.2 ns?

+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