Comment chronométrer le tps d'exécution d'une procédure ?

bubbble Messages postés 12 Date d'inscription mardi 2 mars 2004 Statut Membre Dernière intervention 18 mars 2004 - 17 mars 2004 à 23:28
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - 18 mars 2004 à 14:37
bonsoir !

pouvez-vous me dire comment faire pour chronométrer le temps d'exécution de ma procédure (et faire afficher le défilement de mon chronomètre dans un label par exple ) ?

si vous pouviez m'éclarer au moins sur le control timer et son fonctionnement ça serai déjà ça !!!

merci et bonne continuation !!! :)

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mars 2004 à 00:25
Si tu affiches le temps qui passe pendant l'execution d'une fonction, tu fausses ses mesures. N'afficher qu'a la fin le temps complet employe par la foction.
Pour mesures precises, sers toi DLL que tu trouveras dans mes sources.

ciao...
BruNews, Admin CS, MVP Visual C++
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
18 mars 2004 à 00:49
Une autre solution plutot que les timers si tu veut mesurer des courtes differences de temps :

L'api GetTickCount qui renvoie le temp en MilliSec depuis l'ouverture de windows :

'Declaration de l'api
Private Declare Function GetTickCount& Lib "kernel32" ()
Dim T1 As Long, T2 As Long

Private Sub Command1_Click()
T2 = GetTickCount 'On preleve le temp lors de l'appuie sur le bouton
'Difference entre (T2 - T1) /1000 Pour avoir des sec
MsgBox "Il s'est écoulé : " & (T2 - T1) / 1000 & " seconde(s) depuis l'ouverture de cette fenetre"
End Sub

Private Sub Form_Load()
T1 = GetTickCount 'On preleve le temp a l'ouverture
End Sub

c'est une solution parmis tant d'autres.....

++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mars 2004 à 01:14
pcpunch > GetTickCount est incapable de tester des differences sur de courtes durees, en cas de tests d'optimisation par exemple, sa frequence de rafraichissement est bien tro elevee. La mesure en ticks processeur est la seule fiable en ce cas.
Si haute precision s'impose, ma DLL fournit millisecondes reels et ticks, au choix.

ciao...
BruNews, Admin CS, MVP Visual C++
0
bubbble Messages postés 12 Date d'inscription mardi 2 mars 2004 Statut Membre Dernière intervention 18 mars 2004
18 mars 2004 à 02:02
oulà c'est bien trop compliqué pour moi tout ça !...je ne suis vraiment qu'une toute petite débutante qui a à terminer un projet au plus vite !!!
il n'existe po de code plus simple qui utiliseraient des timers ???

je veux juste chronométrer le tps de parcours d'un robot !
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mars 2004 à 02:21
Si ce n'est que cela, fais avec GetTickCount comme te dit pcpunch.
Tu prends le nbr de millisecondes au depart et celui d'arrivee. Tu evites ainsi un timer inutile.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_chris81 Messages postés 589 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 avril 2008 2
18 mars 2004 à 09:16
tu declare une variable seconde par ex, ensuite tu insere un timer, tu double clique dessus et dedans tu met

seconde = seconde+1
label1.text = seconde

ds ta form1_load tu met

Timer1.Interval = 1000
Timer1.Enabled = False

ca devrait marcher
a+
0
cs_chris81 Messages postés 589 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 avril 2008 2
18 mars 2004 à 09:19
si cet interval (1000 = 1s) est trop lent tu met 10 000 ou plus a toi de voir

excuse moi le

Timer1.Interval = 1000
Timer1.Enabled = TRUE

il faut le mettre en debut de ta fonction et a la fin
tu met

timer1.enable = FALSE

ds ta form1_load tu met
timer1.enable = false

comme il ne sre lancera que qd tu accedera a la fonction
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
18 mars 2004 à 14:37
Dsl Chris31 mais ton code ne fonctionnera pas, je l'ai pas testé mais !!! ("tu declare une variable seconde par ex")

Il faut effectivement déclarer la variable dans le timer mais en Static Sinon elle sera réinitialiser a chaque passe dans le timer et donc la variable seconde sera tj egal a 1 (Seconde=seconde+1)

Il te faut donc declarer la variable comme ça dan le timer 1 :
Static seconde as integer évidement avant de l'incrémenté...

++
0
Rejoignez-nous