Quelle est la meilleure façon de mesurer le temps d'exécution d'une fonction? [dupliquer]
-
22-08-2019 - |
Question
Cette question a déjà une réponse ici:
Il est évident que je peux faire et DateTime.Now.After
-. DateTime.Now.Before
, mais il doit y avoir quelque chose de plus sophistiqué
Des conseils appréciés.
La solution
System.Environment.TickCount et System.Diagnostics.Stopwatch sont deux qui travaillent bien pour une résolution plus fine et l'utilisation simple.
Voir aussi:
Autres conseils
Je vous conseille vraiment de jeter un oeil à System.Diagnostics.Stopwatch
Et quand je cherchai plus sur Chronomètre je trouve ce site;
Il mentionné une autre possibilité
Process.TotalProcessorTime
Utilisez un Profiler
Votre approche ne fonctionnera quand même, mais si vous êtes à la recherche d'approches plus sophistiquées. Je suggère d'utiliser un C # Profiler .
Les avantages qu'ils ont est:
- Vous pouvez même obtenir un niveau de déclaration éclatement
- Pas de modifications requises dans votre base de code
- Instrumentions ont généralement très moins de frais généraux, par conséquent, peut être obtenu des résultats très précis.
Il y a beaucoup de href="http://csharp-source.net/open-source/profilers" disponibles open-source ainsi.
est bon ticks, mais je suggère fonctionner 100 ou 1000 fois, et calculer une moyenne. Non seulement le rend plus facile à mesurer. - en cas de fonctions très rapide / court, mais contribue à traiter des effets ponctuels causés par la surcharge