Quelle est la meilleure façon de mesurer le temps d’exécution d’une fonction?

Évidemment, je peux faire et DateTime.Now.AfterDateTime.Now.Before mais il doit y avoir quelque chose de plus sophistiqué.

Tous les conseils appréciés.

System.Environment.TickCount et la classe System.Diagnostics.Stopwatch sont deux qui fonctionnent bien pour une résolution plus fine et une utilisation simple.

Voir également:

  • Est-ce que DateTime.Now est le meilleur moyen de mesurer les performances d’une fonction?
  • Minuterie haute résolution dans .NET
  • Environment.TickCount vs DateTime.Now
  • Quelle est la meilleure façon de comparer les programmes sous Windows?

Je vous conseille System.Diagnostics.Stopwatch regarder System.Diagnostics.Stopwatch

Et quand je cherchais plus de renseignements sur Stopwatch, j’ai trouvé ce site.

Attention au chronomètre

Il a mentionné une autre possibilité

Process.TotalProcessorTime

Utiliser un profileur

Votre approche fonctionnera néanmoins, mais si vous recherchez des approches plus sophistiquées. Je suggère d’utiliser un C # Profiler .

Les avantages sont les suivants:

  • Vous pouvez même obtenir une rupture de niveau déclaration
  • Aucune modification requirejse dans votre base de code
  • Les instruments ont généralement très peu de frais généraux, ce qui permet d’obtenir des résultats très précis.

Il existe également de nombreux logiciels libres .

Tickcount est bon, mais je suggère de l’exécuter 100 ou 1000 fois et de calculer une moyenne. Non seulement cela le rend plus mesurable – dans le cas de fonctions vraiment rapides / courtes, mais aide à gérer certains effets ponctuels causés par la surcharge.