
Optymalizacja wydajności
Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, najlepsze praktyki wydajnościowe
1Jaka jest główna zaleta BenchmarkDotNet w porównaniu z prostym Stopwatch przy pomiarze wydajności?
Jaka jest główna zaleta BenchmarkDotNet w porównaniu z prostym Stopwatch przy pomiarze wydajności?
Odpowiedź
BenchmarkDotNet wykonuje warm-upy, mierzy wiele iteracji ze stabilizacją statystyczną i unika błędów JIT oraz GC. Prosty Stopwatch może dawać niereprezentatywne wyniki, ponieważ nie kontroluje tych czynników. BenchmarkDotNet dostarcza też szczegółowe metryki, takie jak alokacje pamięci na operację.
2Które narzędzie Microsoft jest zalecane do analizy alokacji pamięci i identyfikacji wycieków pamięci na produkcji?
Które narzędzie Microsoft jest zalecane do analizy alokacji pamięci i identyfikacji wycieków pamięci na produkcji?
Odpowiedź
dotMemory od JetBrains i PerfView od Microsoftu to zalecane narzędzia do profilowania pamięci w .NET. PerfView jest darmowy, open-source i potrafi analizować alokacje na stercie, stack trace'y oraz zdarzenia GC. Jest szczególnie odpowiedni do diagnozowania wycieków pamięci na produkcji bez znaczącego narzutu.
3Jak zidentyfikować ukryte alokacje pamięci w metodzie LINQ takiej jak FirstOrDefault()?
Jak zidentyfikować ukryte alokacje pamięci w metodzie LINQ takiej jak FirstOrDefault()?
Odpowiedź
Użycie BenchmarkDotNet z atrybutem MemoryDiagnoser pokazuje alokacje na operację. Lambdy LINQ tworzą ukryte alokacje poprzez delegaty. Zastąpienie ich prostą pętlą foreach eliminuje te alokacje. PerfView może też przechwytywać stack trace'y alokacji, aby zidentyfikować źródła.
W BenchmarkDotNet, którego atrybutu użyć do pomiaru wydajności CPU i identyfikacji hotspotów kodu?
Jak interpretować wynik BenchmarkDotNet pokazujący Mean: 125.3 ns, StdDev: 45.2 ns?
+19 pytań z rozmów
Inne tematy rekrutacyjne .NET
Podstawy C#
LINQ & Delegates
Podstawy języka C#
Podstawy ASP.NET Core
Cykl życia żądania w ASP.NET Core
Configuration & Settings
Cykl życia aplikacji
Dependency Injection
Entity Framework Core
Minimal APIs
Tworzenie Web API
Async w ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serializacja JSON
Entity Framework Core zaawansowany
Zaawansowane funkcje C#
Clean Architecture
Logging, Monitoring & Observability
Testy jednostkowe & xUnit
Testy integracyjne
Docker & Containerization
Zarządzanie pakietami NuGet
Memory Management & GC
Programowanie reaktywne
Async/await i wzorce
.NET Design Patterns
Bezpieczeństwo i Best Practices
SignalR i czas rzeczywisty
Architektura Mikroserwisów
Opanuj .NET na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo