Temps d'execution d'un programme

Résolu
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 4 mars 2006 à 16:46
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014 - 5 mars 2006 à 17:17
slt tlm:
je veux calculer le temps d'execution d'une portion de programme, pour cela j'ai utilisé ce qui suit:
////////////////////////////
clock_t t1,t2,t3;

t1=clock();
//ma portion
.
.
//
t2=clock();
t3=t2-t1;
/////////////////////////
1) est ce que c'est juste???
2) comment puis je convertir par la suite le résultat en milli-secondes ou en secondes et le mettre dans un float ou dans un string???

5 réponses

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
4 mars 2006 à 18:46
Juste un lien d'une source ou la discussion est tres intéressante sur le calcul du temps d'execution:

http://www.cppfrance.com/codes/CLASSE-SIMPLE-POUR-MESURER-TEMPS-EXECUTION-PORTION-CODE-SUR-MACHINE-NON-DEDIEE-TESTS-WINDOWS_33788.aspx


Sinon, voila ce que j'utilisais auparavant pour le calcul du temps
(avant de lire les commentaires sur la source dont le lien est au
dessus):



clock_t debut, fin;

double duree;

debut=clock();

//Code dont on veut mesurer la duree

fin = clock();

duree = (double)(fin - debut) / CLOCKS_PER_SEC;


Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
4 mars 2006 à 19:33
GetTickCount() si tu prog sous Windows
L'opérateur modulo pour les sec et tout
itoa(t3, Chaine, 10); //En chaine
wsprint(Chaine, "%s:%s", (t3 / 60000),
(t3 / 1000) %60); //Minute : Seconde

if ()
@+ ;<
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
4 mars 2006 à 21:26
je te remercie pour le lien julienbj
trés interessant!!!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 mars 2006 à 03:24
GetTickCount() seulement sur des traitement longs car 'by design' aucune précision garantie.
Windows fournit QueryPerformanceCounter() pour la haute précision.
RDTSC (asm) est utilisable et fort utile, sort un 64 bits sur EDX:EAX qu'il suffit de mettre dans un unsigned __int64 en entrée puis en sortie, idéal pour comparer finement 2 algos.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
5 mars 2006 à 17:17
Merci pour les précision BN

if ()
@+ ;<
0
Rejoignez-nous