
Prestatieoptimalisatie
Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, best practices voor prestaties
1Wat is het belangrijkste voordeel van BenchmarkDotNet ten opzichte van een eenvoudige Stopwatch bij het meten van prestaties?
Wat is het belangrijkste voordeel van BenchmarkDotNet ten opzichte van een eenvoudige Stopwatch bij het meten van prestaties?
Antwoord
BenchmarkDotNet voert warm-ups uit, meet meerdere iteraties met statistische stabilisatie en vermijdt JIT- en GC-bias. Een eenvoudige Stopwatch kan niet-representatieve resultaten geven omdat het deze factoren niet beheerst. BenchmarkDotNet biedt ook gedetailleerde metrieken zoals geheugentoewijzingen per operatie.
2Welk Microsoft-tool wordt aanbevolen om geheugentoewijzingen te analyseren en geheugenlekken in productie te identificeren?
Welk Microsoft-tool wordt aanbevolen om geheugentoewijzingen te analyseren en geheugenlekken in productie te identificeren?
Antwoord
dotMemory van JetBrains en PerfView van Microsoft zijn de aanbevolen tools voor geheugen-profiling in .NET. PerfView is gratis, open-source en kan heap-allocaties, stack traces en GC-events analyseren. Het is bijzonder geschikt om geheugenlekken in productie te diagnosticeren zonder significante overhead.
3Hoe identificeer je verborgen geheugentoewijzingen in een LINQ-methode zoals FirstOrDefault()?
Hoe identificeer je verborgen geheugentoewijzingen in een LINQ-methode zoals FirstOrDefault()?
Antwoord
BenchmarkDotNet gebruiken met het MemoryDiagnoser-attribuut toont de allocaties per operatie. LINQ-lambda's creëren verborgen allocaties via delegates. Vervangen door een eenvoudige foreach-lus elimineert deze allocaties. PerfView kan ook allocatie-stack traces vastleggen om de bronnen te identificeren.
Welk attribuut gebruik je in BenchmarkDotNet om CPU-prestaties te meten en code-hotspots te identificeren?
Hoe interpreteer je een BenchmarkDotNet-resultaat met Mean: 125.3 ns, StdDev: 45.2 ns?
+19 gespreksvragen
Andere .NET-sollicitatieonderwerpen
C#-basisbeginselen
LINQ & Delegates
Essentials van de C#-taal
ASP.NET Core-grondbeginselen
Levenscyclus van requests in ASP.NET Core
Configuration & Settings
Levenscyclus van de applicatie
Dependency Injection
Entity Framework Core
Minimal APIs
Web API-ontwikkeling
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
JSON-serialisatie
Entity Framework Core gevorderd
Geavanceerde C#-functies
Clean Architecture
Logging, Monitoring & Observability
Unit Testing & xUnit
Integratietests
Docker & Containerization
NuGet-pakketbeheer
Memory Management & GC
Reactief programmeren
Async/await & Patterns
.NET Design Patterns
Beveiliging & Best Practices
SignalR & realtime
Microservices-architectuur
Beheers .NET voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis