Haute résolution de la temporisation .NET
J'aimerais faire quelques notions de profilage de mon code, mais a constaté que le type DateTime.Maintenant en C# n'ont une résolution d'environ 16 mme. Il doit y avoir de meilleurs temps de maintien de constructions que je n'ai pas encore trouvé.
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de code pour le temps d'une opération:
EDIT:
Et la chose intéressante est qu'il peut reprendre ainsi.
La Système.Diagnostics.Chronomètre classe va utiliser un compteur haute résolution si l'on est disponible sur votre système.
Le Système.Diagnostics.Chronomètre de classe est génial pour le profilage.
Voici un lien vers Vance Morrison du Code de la Minuterie Blog si vous ne voulez pas écrire vos propres fonctions de mesure.
Pour la résolution la plus élevée des compteurs de performance, vous pouvez utiliser le sous-jacent win32 compteurs de performance.
Ajouter le suivant P/Invoke sigs:
Et de les appeler à l'aide:
Jetez-le dans une classe simple et vous êtes prêt à aller. Exemple en supposant que le nom de classe PerformanceCounters):
Vous pourriez appel à la haute résolution de compteur de performances dans Windows. Le nom de la fonction est QueryPerformanceCounter dans kernel32.dll.
Syntaxe pour l'importation en C#:
Syntaxe pour Windows appel:
QueryPerformanceCounter @ MSDN