11
votes

Combien de temps dure mon code pour courir?

Comment puis-je savoir combien de temps mon code C # prend pour courir?


0 commentaires

6 Réponses :


1
votes

Consultez le classe de chronomètre . < / p>


0 commentaires

14
votes

the chronomètre La classe offre des timings de haute précision dans .NET. Il est capable de mesurer le temps avec une sensibilité d'environ 100 ans de nanosecondes (fractions de millisecondes). Pour obtenir la résolution exacte, lisez la valeur de Chronomètre.frequency . xxx

aussi, assurez-vous de gérer votre code à plusieurs reprises (autant de fois que possible) pour obtenir un plus de temps moyen, ainsi que de réduire les effets des fluctuations de la charge du processeur.


0 commentaires


8
votes

Comme d'autres personnes ont dit, le chronomètre classe est bon pour le côté de synchronisation simple des choses. Autres morceaux à garder à l'esprit cependant:

  • Votre code peut générer des objets qui devront être des ordures recueillies après avoir arrêté le chronomètre
  • Inversement, votre chronométrage peut inclure d'autres objets étant des ordures collectées, même si elles n'ont rien à voir avec votre code
  • Si vous commencez à chronométrer avant d'exécuter votre méthode pour la première fois, il inclura JIT Time
  • Si vous prenez un peu de temps très court, cela conduit à des résultats très imprévisibles - pour la benchmarking, j'ai tendance à préférer le code d'exécution pendant plusieurs secondes, pour rendre compte de l'application interrompue par d'autres processus, etc.

    Si vous êtes intéressé par un benchmarking, j'ai le Minibench projet que je dois obtenir Round pour travailler à nouveau à un moment donné - ce n'est pas tout à fait où je veux que cela finisse, mais c'est un début. Je parle plus sur ce que je veux réaliser avec elle dans Ce blog post .


2 commentaires

Merci personnels pour Minibench, Jon - C'est devenu un outil inestimable pour moi.


@C Rogers: Vous l'avez probablement utilisé plus que ce que j'ai alors! Je reviendrai vraiment là quelque temps ... l'écriture a plutôt repris pour le moment :(



0
votes

Je recommande d'utiliser un outil de profilage tel que Fourts pour tester la vitesse de votre application et trouvez du code lent. Cela vous permettra de faire un test d'exécution de ligne ligne par ligne.


0 commentaires

0
votes

Si vous voulez simple, mettez simplement une boucle de n-itération autour de lui et utilisez chronomètre (ou juste une montre-bracelet) et diviser par N. Par exemple, si vous voulez des microsecondes, laissez n = 1000000. Si vous craignez de les frais généraux de la boucle, ce qui le déroulent juste d'un facteur de 10.


0 commentaires