Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2979 connectés 

  FORUM HardWare.fr
  Programmation

  Calcul de temps de traitement en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Calcul de temps de traitement en C

n°78137
pilou51
Posté le 04-12-2001 à 15:32:14  profilanswer
 

Salut,
Voilà, je cherche le moyen de calculer le temps mis par l'exécution d'une certaine fonction, afin de le comparer avec d'autres méthodes (il s'agit simplement de tris de tableaux)...
Quelqu'un peut-il m'indiquer la  fonction ? Je sais qu'il y en a une, mais pas moyend de la retrouver
Merci d'avance...

mood
Publicité
Posté le 04-12-2001 à 15:32:14  profilanswer
 

n°78138
BENB
100% Lux.
Posté le 04-12-2001 à 15:33:05  profilanswer
 

clock() avant
clock() apres...

n°78140
pilou51
Posté le 04-12-2001 à 15:35:54  profilanswer
 

Merci !  
euh, des détails sur la syntaxe ? comment récupérer le temps ?
Merci !

n°78143
chrisbk
-
Posté le 04-12-2001 à 15:38:00  profilanswer
 

si t sous windows prefere GetTickCount qui me semble est un chtit peu plus precise

n°78144
BENB
100% Lux.
Posté le 04-12-2001 à 15:39:33  profilanswer
 

time.h
ca renvoi des clock_t
 
et tu fais (clock_t2 - clock_t2)/CLOCK_PER_SEC

n°78145
pilou51
Posté le 04-12-2001 à 15:41:49  profilanswer
 

euh, au risk de passer pour un bléro, vous pouvez filer un petit exple ?
 
si j'ai bien compris :  
clock();
fonction_à_exécuter();
clock();
 
Mais pour le calcul ?
Merci encore

n°78146
pilou51
Posté le 04-12-2001 à 15:44:14  profilanswer
 

euh, et CLOCK_PER_SEC, je l'initialise à combien svp ?
Merci pour la 6ème fois je crois :o)

n°78147
chrisbk
-
Posté le 04-12-2001 à 15:44:22  profilanswer
 

plutot
 
 
var = clock();
calcul
var = clock()-var;
 
et var contient le tps ecoule

n°78148
chrisbk
-
Posté le 04-12-2001 à 15:44:53  profilanswer
 

CLOCK_PER_SEC  c une constante, utilise sans toucher et ce sera OK

n°78149
BENB
100% Lux.
Posté le 04-12-2001 à 15:47:05  profilanswer
 

Pilou51 a écrit a écrit :

euh, et CLOCK_PER_SEC, je l'initialise à combien svp ?
Merci pour la 6ème fois je crois :o)  




Il est defini dans time.h...
 
"normalement" clock doit renvoyer des milisecondes avec une precision de 10 ms et pas beaucoup plus d'une heure...
 
GetTickCount doit marcher de la meme maniere je suppose ?

mood
Publicité
Posté le 04-12-2001 à 15:47:05  profilanswer
 

n°78151
pilou51
Posté le 04-12-2001 à 15:47:39  profilanswer
 

euh, CLOCK_PER_SEC est undeclared...
il est défini dans time.h normalement non ?

n°78152
BENB
100% Lux.
Posté le 04-12-2001 à 15:48:54  profilanswer
 

Pilou51 a écrit a écrit :

euh, CLOCK_PER_SEC est undeclared...
il est défini dans time.h normalement non ?  




essayes CLOCKS_PER_SEC

n°78153
pilou51
Posté le 04-12-2001 à 15:51:23  profilanswer
 

euh c ok maintenant...
mais le temps de calcul semble être trop court...
il affiche toujours 0 (et je suis en long)...  
d'autres précisions ?

n°78154
chrisbk
-
Posté le 04-12-2001 à 15:54:27  profilanswer
 

Ben si tu fais un calcul pour optimiser la fonction, ne la fais pas tourner une fois mais bpc de fois
 
ensuite si tu veux de la precision vire la division par CLOCKS_PER_SEC

n°78155
BENB
100% Lux.
Posté le 04-12-2001 à 15:54:39  profilanswer
 

Pilou51 a écrit a écrit :

euh c ok maintenant...
mais le temps de calcul semble être trop court...
il affiche toujours 0 (et je suis en long)...  
d'autres précisions ?  




moins de 10ms...
 
Tu travailles avec quoi ?
Dans visual il me semble qu'il y a un profiler qui te donnent le temps moyen dans chaque methode de ton projet...

n°78158
pilou51
Posté le 04-12-2001 à 15:58:58  profilanswer
 

oui effectivement je bosse sous visual...
je maîtrise pas vraiment, j'ai toujours codé sous Nunux, et du Java... tu peux m'en dire plus sur cette option de Visual stp ?
Merci

n°78159
chrisbk
-
Posté le 04-12-2001 à 15:59:08  profilanswer
 

BENB a écrit a écrit :

 
moins de 10ms...
 
Tu travailles avec quoi ?
Dans visual il me semble qu'il y a un profiler qui te donnent le temps moyen dans chaque methode de ton projet...  




 
il est mauvais ce profiler, je trouve  
 
(m'a deja sorti des resultats 100% bidon, louche)

n°78161
pilou51
Posté le 04-12-2001 à 16:04:07  profilanswer
 

même en virant le CLOCKS_PER_SEC il me met toujours 0...
bizarre non ?

n°78162
BENB
100% Lux.
Posté le 04-12-2001 à 16:05:38  profilanswer
 

chrisbk a écrit a écrit :

 
 
il est mauvais ce profiler, je trouve  
 
(m'a deja sorti des resultats 100% bidon, louche)  




 
A l'epoque (en 1997 - 1998 Visual 5.0) il fallait quand verifier... mais ca avait l'air correct en general...

n°78163
chrisbk
-
Posté le 04-12-2001 à 16:07:43  profilanswer
 

BENB a écrit a écrit :

 
 
A l'epoque (en 1997 - 1998 Visual 5.0) il fallait quand verifier... mais ca avait l'air correct en general...  




 
il m'a facher, celui du 6
J'avais une fonction A, mettons qu'elle tournait en 5s (tps mesure au GetTickCount)
 
je me casse a l'optmiser SIMD . temps 2.5s (GetTickCount tjs)
 
 
G passer ca au profiler de visu , il m'a sorti que ma fonction optimise etait ~25% plus lente que la normale
 
depuis je le boude :D

n°78164
pilou51
Posté le 04-12-2001 à 16:09:17  profilanswer
 

je peux en savoir plus sur le GetTickCount stp ?

n°78167
BENB
100% Lux.
Posté le 04-12-2001 à 16:14:07  profilanswer
 

chrisbk a écrit a écrit :

 
 
il m'a facher, celui du 6
J'avais une fonction A, mettons qu'elle tournait en 5s (tps mesure au GetTickCount)
 
je me casse a l'optmiser SIMD . temps 2.5s (GetTickCount tjs)
 
 
G passer ca au profiler de visu , il m'a sorti que ma fonction optimise etait ~25% plus lente que la normale
 
depuis je le boude :D  




Par contre il ralenti toute l'appli...
Mais il est capable de te dire combien de temps tu passes dans une methode en fonction de l'appelant...
 
ou si prefere de te faire des graphes d'appel en te disant pour une methode donnee ou est passe le temps...
 
Je ne suis pas sure d'etre tres claire la :D
 
Sinon pour l'invoquer c'est dans les menus de Visual me semble-t-il...

n°78168
chrisbk
-
Posté le 04-12-2001 à 16:14:10  profilanswer
 

#include <windows.h>
 
.....
 
 
 
DWORD a = GetTickCount();
 
//calcul
 
a = GetTickCount()-a;
 
printf("tps en ms : %d\n",a);

n°78170
chrisbk
-
Posté le 04-12-2001 à 16:16:30  profilanswer
 

BENB a écrit a écrit :

 
Par contre il ralenti toute l'appli...
Mais il est capable de te dire combien de temps tu passes dans une methode en fonction de l'appelant...
 
ou si prefere de te faire des graphes d'appel en te disant pour une methode donnee ou est passe le temps...
 
Je ne suis pas sure d'etre tres claire la :D
 
Sinon pour l'invoquer c'est dans les menus de Visual me semble-t-il...  




 
pur le mettre en route, fo deja la version enterprise de visu
 
ensuite faut aller dans project-settings-link-enable profiling
 
ensuite build - profile
 
a noter truc c.h.i.a.n.t c'est qu'il ne changera pas le rep courant de votre programme (genre il le lancera dans monProjet\debug a la place de monProjet, ce qui peut etre chaint si vous charger des fichiers avec des chemins relatifs)
 
 
Sinon ca aide pour savoir cbien de fois tu hit une fonction, mais pour le tps que tu passe dedans ca me semblait un peu pipo... (suite a cette xp)

n°78173
pilou51
Posté le 04-12-2001 à 16:32:01  profilanswer
 

OK ça marche !!!
Les résultats sont à peu près cohérents entre le profiler et le GetClickCount..
Merci bcp à tous les deux !

n°78376
LeGreg
Posté le 05-12-2001 à 11:42:23  profilanswer
 

Tu peux recuperer un profiler hierarchique ici:
http://www.codercorner.com/News.htm
(c'est du C++ je crois, mais ca doit etre faisable
de l'adapter pour du C..
et puis si t'es sous visual, le C++ ca passe :) )
 
A+
LEGREG

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Calcul de temps de traitement en C

 

Sujets relatifs
[C] Precision de calcul -- débutantrequete SQL : utilisation SUM et traduction en calcul domaine
programmation graphique 2D : affichage d'un graphe en temps réel[Delphi] si quelqu'un a du temps à perdre...
Calcul de PIfaire un calcul en asp
Calcul de la hauteur[ASP]temps de génération d'une page
[ASM] Comment faire un jmp qui modifie en meme temps cs et ip? 
Plus de sujets relatifs à : Calcul de temps de traitement en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR