Pour i7 mesurer le temps d'exécution d'une fonction en C, la précision est la fonction POSIX gettimeofday()
dans Ubuntu 12.04 sur un Intel Core i7? Et pourquoi ? Si c'est difficile à dire, alors comment savoir? Je ne peux pas trouver une réponse directe à ce sujet.temps d'exécution et gettimeofday sur ubuntu/
Répondre
Si vous créez un chronomètre, vous voulez une horloge cohérente qui ne s'adapte pas aux serveurs de temps.
#include <time.h>
...
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC_RAW, &ts);
Si CLOCK_MONOTONIC_RAW
n'existe pas, utilisez CLOCK_MONOTONIC
à la place. Si vous voulez l'heure de la journée, vous ne devriez toujours pas utiliser gettimeofday
.
clock_gettime(CLOCK_REALTIME, &ts);
La minuterie de ces horloges est haute résolution, mais elle se déplace. Le timespec
prend en charge une résolution aussi petite que nanosecondes, mais votre ordinateur ne sera probablement capable de mesurer qu'en quelques microsecondes.
gettimeofday
renvoie timeval
, qui a une résolution de microsecondes.
Ceci est une réponse à la question que le PO aurait dû demander, mais pas à celui qu'il a demandé. – Cairnarvon
Il renvoie l'heure en microsecondes mais la précision réelle n'est pas en microsecondes (pas 1 microseconde), http://stackoverflow.com/a/7760992/390913 – perreal
@perreal C'est correct. Je voulais seulement dire que la structure de données était capable de contenir des microsecondes. – TheBuzzSaw
Vous pouvez utiliser gettimeofday() au début et à la fin du code pour trouver la différence entre l'heure de début et l'heure de fin du programme. comme
//start = gettimeofday
//your code here
//end = gettimeofday
temps d'exécution sera la différence entre les deux Mais il dépend de la quantité de charge est une machine est à ce moment-là. Donc pas une méthode fiable.
Vous pouvez également utiliser:
time ./a.out
en supposant que votre programme est a.out
gettimeofday
devrait être suffisamment précis, au moins pour comparer la performance relative. Mais, afin de lisser les inexactitudes dues à la commutation de contexte et aux délais liés aux E/S, vous devez exécuter la fonction, disons, au moins des centaines de fois et obtenir la moyenne.
Vous pouvez régler le nombre de fois que vous devez exécuter la fonction en vous assurant d'obtenir approximativement le même résultat chaque fois que vous comparez la fonction.
Egalement see this answer pour mesurer l'exactitude de gettimeofday dans votre système.
Vous ne devriez pas utiliser 'gettimeofday'. – TheBuzzSaw
la question ne demande pas si oui ou non nous devrions l'utiliser si – perreal
- 1. utilise gettimeofday?
- 2. Comportement bizarre de gettimeofday
- 3. Verrouillage logiciel du processeur sur Ubuntu et pthreads
- 4. Que dois-je utiliser pour remplacer gettimeofday() sur Windows?
- 5. Le décalage horaire gettimeofday est parfois négatif
- 6. Eclipse et OpenCV sur Ubuntu
- 7. Java Laps de temps/longues dort sur Ubuntu/Jetty
- 8. Obtenir le temps CPU dans Ubuntu?
- 9. Ubuntu juste à temps le débogage
- 10. gettimeofday(). est-ce agnostique pour le changement du jour en épargnant le temps?
- 11. Y at-il un équivalent de « gettimeofday » dans .NET
- 12. Pourquoi les intervalles gettimeofday() sont-ils parfois négatifs?
- 13. SOAP poire et XAMPP sur Ubuntu
- 14. Installation et exécution de browserquest sur ubuntu
- 15. service Web amazon et hébergement sur Ubuntu
- 16. Node.js et Express sur Ubuntu 11.04
- 17. Installer et utiliser SASS sur ubuntu
- 18. C++/ubuntu sur les .a et .so
- 19. comportement différent crawling sur Ubuntu et Windows
- 20. Objets Tomcat6 et Audited sur Ubuntu 10.04
- 21. openni_tracker sur ubuntu 14.04 et ros indigo
- 22. RXTX sur Ubuntu 12.04 et Netbeans
- 23. Variables d'environnement TK_LIBRARY et TCL_LIBRARY sur Ubuntu
- 24. Eclipse sur Ubuntu avec Apache2 et Subversion
- 25. nettoyer python sur ubuntu
- 26. Symfony2 Lent sur Ubuntu VM
- 27. Obtenir des informations de proc dans Ubuntu avec Mono
- 28. kubernetes sur ubuntu 16.04
- 29. Configuration d'Eclipse sur Ubuntu
- 30. configurer OpenGL sur Ubuntu
temps d'exécution d'une fonction – user1511956
Cela peut être utile: http://stackoverflow.com/questions/12392278/measure-time-in-linux-getrusage-vs-clock-gettime-vs-clock-vs-gettimeofday – VoidPointer
De quel genre de temps parlons-nous? Si vous essayez de chronométrer les choses à l'échelle de la milliseconde, 'gettimeofday()' est horriblement inapproprié. Cependant, si votre programme fonctionne, par ex. une semaine, 'gettimeofday()' pourrait être suffisant pour vos besoins ... – twalberg