Calcul du temps d'execution en millisecondes

Calcul du temps d'execution en millisecondes - C++ - Programmation

Marsh Posté le 17-04-2007 à 22:59:53    

Bonjour,
 
Je réalise un programme en C++ sous Linux dans lequel j'ai besoin de calculer le temps d'éxécution avec une précision en millisecondes. Je n'ai trouvé qu'une façon de faire, mais qui utilise des bibliothèques du fichier windows.h, inutilisables ici puisque le programme doit tourner sous Linux. Quelqu'un saurait-il s'il existe une autre manière en C++ de calculer le temps avec cette précision ?
Merci d'avance de votre réponse.

Reply

Marsh Posté le 17-04-2007 à 22:59:53   

Reply

Marsh Posté le 17-04-2007 à 23:51:21    

Yakurena a écrit :

Bonjour,
 
Je réalise un programme en C++ sous Linux dans lequel j'ai besoin de calculer le temps d'éxécution avec une précision en millisecondes. Je n'ai trouvé qu'une façon de faire, mais qui utilise des bibliothèques du fichier windows.h, inutilisables ici puisque le programme doit tourner sous Linux. Quelqu'un saurait-il s'il existe une autre manière en C++ de calculer le temps avec cette précision ?
Merci d'avance de votre réponse.


 
A priori je dirais http://www.boost.org/libs/timer/index.html ou clock(), utilisés par exemple  
 
ici :  http://forum.hardware.fr/hfr/Progr [...] m#t1543021
 
et là : http://forum.hardware.fr/hfr/Progr [...] m#t1543013
 
Edit : posts cités dans le mauvais ordre (enfin, ils sont contigus dans le même topic...)


Message édité par boulgakov le 17-04-2007 à 23:54:42
Reply

Marsh Posté le 18-04-2007 à 11:24:28    

man gettimeofday

Code :
  1. #include <sys/time.h>
  2. os_stamp_t stamp;
  3. gettimeofday(&stamp, 0);


Reply

Marsh Posté le 18-04-2007 à 12:04:41    

tbp a écrit :

man gettimeofday

Code :
  1. #include <sys/time.h>
  2. os_stamp_t stamp;
  3. gettimeofday(&stamp, 0);



 
Ah tiens, je m'étais planté dans mon utilisation de clock(), il ne faut pas oublier d'utiliser la macro CLOCKS_PER_SEC pour convertir les coups d'horloge en temps.  
 

Code :
  1. #include <ctime>
  2. ...
  3. temps_initial = clock ();
  4. . . .
  5.                  /* Partie du code à évaluer */
  6. . . .
  7. temps_final = clock ();
  8. temps_cpu = (temps_final - temps_initial) / CLOCKS_PER_SEC * 1000; // millisecondes


 
Au cas où cela t'intéresserait : cette solution est portable, au contraire de 'gettimeofday' je crois.
 
 
 
 
 
 

Reply

Marsh Posté le 18-04-2007 à 12:15:11    

boulgakov a écrit :

Au cas où cela t'intéresserait : cette solution est portable, au contraire de 'gettimeofday' je crois.


gettimeofday est portable sur tout système POSIX; clock() n'a aucune garantie de résolution millimétrique, et surtout pas sous win32.

Reply

Marsh Posté le 18-04-2007 à 13:39:13    

tbp a écrit :

gettimeofday est portable sur tout système POSIX; clock() n'a aucune garantie de résolution millimétrique, et surtout pas sous win32.


 
Par "portable" j'entendais "fourni avec la librairie standard C++". Pour la résolution, après quelques recherches Google j'ai bien l'impression que tu as raison, on est plutôt au niveau du 1/100 de seconde.  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed