COMMENT CALCULER LE TEMP D'EXÉCUTION DE CERTAINES FONCTIONS OU BOUT DE CODE DANS

ZogStriP Messages postés 164 Date d'inscription dimanche 16 novembre 2003 Statut Modérateur Dernière intervention 5 juillet 2005 - 10 avril 2004 à 20:33
anneclo Messages postés 1 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 13 janvier 2007 - 13 janv. 2007 à 22:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21811-comment-calculer-le-temp-d-execution-de-certaines-fonctions-ou-bout-de-code-dans-ces-programme

anneclo Messages postés 1 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 13 janvier 2007
13 janv. 2007 à 22:13
Quelqu'un peut-il m'expliquer pourquoi l'exécution de ce bout de programme ne me rend que des zéros ? (avec windows et devc 4.9.9)
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
16 avril 2004 à 03:16
exactement comme mon code, sauf que moi j'ai fait ceci pour 'formater' si on veut le résultat ...


StartClock();
// instructions ...
StopClock();
ShowSlock("prefix ici, sinon NULL", 0 ou 1);


tout simplement, StartClock() et StopClock() sont des #define donc

StartClock(); // sera remplacé par STARTCLOCK = clock();
et
StopClock(); // sera remplacé par ENDCLOCK = clock();

et le ShowClock() est une petite fonction qui permet d'afficher le résultat tout simplement ...


~(.:: NitRic ::.)~
cs_Pacifica Messages postés 9 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 24 février 2006
14 avril 2004 à 21:02
Moi que je veux connaitre le temps d'execution d'une de mes instructions je fais ceci:
#include <time.h>
void main()
{
clock_t D,F;
D=clock();
instruction...
F=clock();
printf("Temps=%f\n\r",(F-D)/CLK_TCK);
}
J'utilse ceci car pour moi je trouve que c'est rapide.
Voilà pour ma part,
Pacifica.
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
11 avril 2004 à 18:24
j'allais oublier, alexman, GetTickCount() renvoie un DWORD et non un int

typedef unsigned long DWORD;

un entier non signé 32bits ... un int est(par défaut) signé

ca peut servir à éviter par exemple: signed/unsigned mismatch
qui n'est qu'un warning mais bon ...
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
11 avril 2004 à 18:18
Vous êtes difficile hein ...

time() renvoie l'heure, si ton process perd dison .03 sec de temp CPU à cause d'un autre programme ou autre, le temp d'exécution de ton programme va être .03 sec plus haut en utilisant time(), même chose pour GetTickCount() qui renvoie le uptime de Windows. clock() renvoie le temp CPU utilisé par le process appellant sans compter le temp CPU utilisé par d'autre process, si les autres process en cours font perdre .03 sec à ton process, ce .03 sec ne sera pas calculé avec clock(), ce qui est, à mon avis, plus précis que GetTickCount() & time() ...

En plus, mon code, d'après mes connaissances, est portable, Windows, Linux/Unix, Mac, etc ... un simple copier/coller et hop! le tour est joué!


~(..: NitRic ::.)~
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 avril 2004 à 10:08
+1

c'est comme ca que j'ai toujours fait (mais avec clock() )
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
11 avril 2004 à 09:46
Salut NitRic,

je voulais simplement demander si l'utlisation de l'api GetTickCount ne serait pas plus simple :

int iAvant, iApres;
int iResult;

iAvant = GetTickCount(); //Je sais pas sil ya des arguments, a verifier
{ ...............CODE...............}
iApres = GetTickCount();

iResult = iApres - iAvant;

printf("Voila : %d\n", iResult);


Ca me semble bocou plus simple, bien que je n'ai rien a reprocher a ta methode....

Voila NitRic...Bonne prog !

A++

Alhexman
ZogStriP Messages postés 164 Date d'inscription dimanche 16 novembre 2003 Statut Modérateur Dernière intervention 5 juillet 2005 1
10 avril 2004 à 20:33
utiliser la fonction time (sous linux) marche aussi bien !
Rejoignez-nous