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

 


Dernière réponse
Sujet : Calcul de temps de traitement en C
LeGreg 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
LeGreg 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
pilou51 OK ça marche !!!
Les résultats sont à peu près cohérents entre le profiler et le GetClickCount..
Merci bcp à tous les deux !
chrisbk

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)

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

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...

pilou51 je peux en savoir plus sur le GetTickCount stp ?
chrisbk

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

BENB

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...

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

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)

pilou51 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
BENB

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...

chrisbk 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
pilou51 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 ?
BENB

Pilou51 a écrit a écrit :

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




essayes CLOCKS_PER_SEC

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

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 ?

chrisbk CLOCK_PER_SEC  c une constante, utilise sans toucher et ce sera OK
chrisbk plutot
 
 
var = clock();
calcul
var = clock()-var;
 
et var contient le tps ecoule
pilou51 euh, et CLOCK_PER_SEC, je l'initialise à combien svp ?
Merci pour la 6ème fois je crois :o)
pilou51 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
BENB time.h
ca renvoi des clock_t
 
et tu fais (clock_t2 - clock_t2)/CLOCK_PER_SEC
chrisbk si t sous windows prefere GetTickCount qui me semble est un chtit peu plus precise
pilou51 Merci !  
euh, des détails sur la syntaxe ? comment récupérer le temps ?
Merci !
BENB clock() avant
clock() apres...
pilou51 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...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)