.NET

Optimisation des performances

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

22 questions d'entretien·
Senior
1

Quel est l'avantage principal de BenchmarkDotNet par rapport à un simple Stopwatch pour mesurer les performances ?

Réponse

BenchmarkDotNet effectue des warm-ups, mesure plusieurs itérations avec stabilisation statistique, évite les biais JIT et GC. Un Stopwatch simple peut donner des résultats non représentatifs car il ne contrôle pas ces facteurs. BenchmarkDotNet fournit également des métriques détaillées comme les allocations mémoire par opération.

2

Quel outil Microsoft est recommandé pour analyser les allocations mémoire et identifier les fuites mémoire en production ?

Réponse

dotMemory de JetBrains et PerfView de Microsoft sont les outils recommandés pour profiler la mémoire en .NET. PerfView est gratuit, open-source et peut analyser les allocations heap, les stacks traces et les événements GC. Il est particulièrement adapté pour diagnostiquer les fuites mémoire en production sans overhead significatif.

3

Comment identifier les allocations mémoire cachées dans une méthode LINQ comme FirstOrDefault() ?

Réponse

Utiliser BenchmarkDotNet avec l'attribut MemoryDiagnoser permet de voir les allocations par opération. Les lambdas LINQ créent des allocations cachées via delegates. Remplacer par une boucle foreach simple élimine ces allocations. PerfView peut aussi capturer les stacks traces d'allocations pour identifier les sources.

4

Dans BenchmarkDotNet, quel attribut utiliser pour mesurer les performances CPU et identifier les hotspots de code ?

5

Comment interpréter un résultat BenchmarkDotNet montrant Mean: 125.3 ns, StdDev: 45.2 ns ?

+19 questions d'entretien

Maîtrise .NET pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement