Aller au contenu

Benchmarking

Contexte : Le benchmarking mesure les performances (temps d’exécution, allocations mémoire) du code pour identifier les goulots d’étranglement et comparer les implémentations. Le chronométrage manuel avec Stopwatch est sujet à erreurs à cause de l’échauffement JIT, des threads d’arrière‑plan et d’autres facteurs. BenchmarkDotNet est la bibliothèque standard de l’industrie pour le benchmarking .NET qui gère toutes ces complexités.

using System;
using System.Diagnostics;
// Benchmarking manuel (non recommandé)
public class ManualBenchmark
{
public static void Measure(Action action)
{
Stopwatch sw = Stopwatch.StartNew();
action();
sw.Stop();
Console.WriteLine($"Temps écoulé : {sw.ElapsedMilliseconds} ms");
}
}
Fenêtre de terminal
dotnet run
Temps écoulé : 123 ms
  • Utilisez toujours une bibliothèque de benchmarking dédiée.
  • Exécutez les benchmarks en mode Release sans débogueur attaché.

Choisir un type de collection – Comparez si List<T> ou HashSet<T> est plus rapide pour votre motif de recherche spécifique.
Voir documentation BenchmarkDotNet.