Temps de calcul

Résolu
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 26 nov. 2005 à 12:25
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 26 nov. 2005 à 13:56
Bonjour à tous

Je voudrais connaitre le temps d'execution d'une procédure qui est inférieure à 0.5 secondes et je ne vois pas comment le faire

D'avance merci

8 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2005 à 13:09
salut,

alors il faut une API plus précise
[VB6]


Option Explicit
'
'-> API retourne la valeur du compteur Haut¨Performance, s'il existe
Private Declare Function QueryPerformanceCounter Lib "kernel32" _
(lpPerformanceCount As Currency) As Long
'
'-> API retourne la fréquence du compteur Haut¨Performance, s'il existe
Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
(lpFrequency As Currency) As Long
'
'
Dim TimeStart As Currency ' tps au démarrage du compteur
Dim TimeStop As Currency ' tps à l'arrêt du compteur
Dim Frequency As Currency ' fréquence du compteur
'
'
Private Sub Form_Load()
Call QueryPerformanceFrequency(Frequency)
If Frequency = 0 Then
Frequency = 1 'pour pas division par 0
MsgBox "Votre poste ne supporte pas le compteur Haute-Performance." & vbCrLf & _
"Les temps seront faux !!!!", 32
End If
End Sub
'
'
Private Sub Command1_Click()
Call QueryPerformanceCounter(TimeStart)

Dim i As Long
For i = 0 To 30000
DoEvents
Next i

Call QueryPerformanceCounter(TimeStop)

MsgBox "~ " & CStr(TimeStop - TimeStart) / Frequency * 1000 & " ms ~", 32
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

PCPT [AFCK]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2005 à 13:12
MsgBox "~ " & CStr((TimeStop - TimeStart) / Frequency * 1000) & " ms ~", 32
(fonctionnait tout de même)
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 nov. 2005 à 12:32
Utilise les fonctions de l'API par exemple :

Au lancement de ta procédure :

dim lTemps as long

lTemps = GetTickCount


A la fin de ta procédure :

Msgbox GetTickCount - lTemps

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 nov. 2005 à 12:37
Je viens d'essayer mais la procérure est trop rapide le temps donné est par conséquent 0, je me demande s'il est possible de le faire vu la vitesse mais si quelqu'un à une idée...
0

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

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 nov. 2005 à 12:44
Pour info j'ai fait une fonction pour calculer x^n et l'ordre de grandeur est le meme que celle par défaut mais je ne sais pas si elles est plus ou moins rapide, j'hésite à la mettre sur ce site.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
26 nov. 2005 à 13:35
Un autre moyen est d'appeler 1000 fois ta fonction ou ta procédure et de diviser le temps mesuré par 1000.



Julien.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2005 à 13:41
c'est vrai que c'est bien plus logique....
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 nov. 2005 à 13:56
Super c'est fait merci à tous
0
Rejoignez-nous