Calcul du temps d'execution en millisecondes

Signaler
Messages postés
47
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
1 juillet 2007
-
Messages postés
1
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007
-
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.

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
clock() à vérifier

ciao...
BruNews, MVP VC++
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
salut pour quelque chose de peu précis on peut utiliser clock(),

mais sous linux on peu aussi utiliser la commande shell time
par exemple time a.out renvoie le temps mis pour l'exécution de a.out

ou bien encore mieux il y a le header times.h:
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/times.2.html
http://www.opengroup.org/onlinepubs/007908799/xsh/systimes.h.html
http://66.102.9.104/search?q=cache:IGpP1IJCUPAJ:www.labri.fr/perso/betrema/systemes/mai97.html+exemple+times+times.h&hl=fr&ct=clnk&cd=2&gl=fr

qui est parfait pour calculer avec précision le temps processeur, le temps utilisateur etc.

a+
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
static inline double Now()
{
struct timeval tp;
gettimeofday(&tp,NULL);
return double(tp.tv_sec) + double(tp.tv_usec)*1e-6;
}

double t1 = Now();
...
double elapsed = Now()-t1;

ps : précision de l'ordre de la microseconde
ps2: pas la peine de poster la même question sur plusieurs sites différents regarde plutot sur les autres, je t'avais déjà répondu !

ps3 : si ca interesse du monde, la même chose pour windows :

static inline double Now()
{
double freq, t;

QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
QueryPerformanceCounter((LARGE_INTEGER*)&t);

return (( (t*1000000000) / freq) / 1000000000);
}
Messages postés
1
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
27 avril 2007

tip top merci turnerom