.NET

Prestatieoptimalisatie

Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, best practices voor prestaties

22 gespreksvragen·
Senior
1

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.

2

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.

3

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.

4

Welk attribuut gebruik je in BenchmarkDotNet om CPU-prestaties te meten en code-hotspots te identificeren?

5

Hoe interpreteer je een BenchmarkDotNet-resultaat met Mean: 125.3 ns, StdDev: 45.2 ns?

+19 gespreksvragen

Beheers .NET voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis