Exécuter des benchmarks en évitant les pièges courants
Contexte : Pour obtenir des résultats de benchmark précis, évitez ces erreurs courantes : exécuter en mode Debug, attacher un débogueur, avoir d’autres applications en cours d’exécution, ne pas faire d’échauffement, et utiliser la même variable à travers les benchmarks. BenchmarkDotNet évite automatiquement la plupart de ces problèmes, mais vous devez vous assurer que votre projet est compilé en configuration Release et que vous exécutez le processus de benchmark sans débogueur.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »# Manière correcte d'exécuter des benchmarksdotnet run -c Release --filter *MyBenchmark*// Piège : élimination de code mort[Benchmark]public void Pitfall(){ int x = 42; // Le compilateur peut supprimer ceci si non utilisé}
// Correction : consommer la valeur[Benchmark]public int Fixed(){ int x = 42; return x;}Sortie console
Section intitulée « Sortie console »dotnet run -c Release --filter *Fixed*// BenchmarkDotNet affiche les résultats sans avertissements.Remarques importantes
Section intitulée « Remarques importantes »- Utilisez
dotnet run -c Release(pas Debug). - N’exécutez pas de benchmarks dans une machine virtuelle ou en mode économie d’énergie.
- Laissez le benchmark s’exécuter sans être dérangé (fermez les navigateurs, etc.).
Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Benchmark d’un nouvel algorithme – Exécutez les benchmarks sur une machine dédiée avec un plan d’alimentation haute performance, et comparez toujours avec une référence de base.
Voir bonnes pratiques BenchmarkDotNet.