Salut à tous!
Un module de classe à insérer dans un projet pour chronométrer ce que vous voulez, avec une précision de l'ordre de la microseconde.
Rappel:
1 milliseconde = 10 exposant -3 seconde (seconde sans "s" parce qu'on a moins d'une seconde)
1000 millisecondes = 1 seconde
1 microseconde = 10 exposant -6 seconde (symbole : µs)
1000 microsecondes = 1 milliseconde
1000000 microsecondes = 1 seconde
Son utilisation est simple: on lance le chronomètre et on affiche sa valeur.
Le module est suffisament commenté, place au code!
Source / Exemple :
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private depart As Currency
Public Function Start()
Call QueryPerformanceCounter(depart)
End Function
Public Property Get Value() As String
Dim fin As Currency
If depart <> 0 Then
Call QueryPerformanceCounter(fin)
Value = CStr(fin - depart)
depart = 0
Else: Value = "0"
End If
End Property
'Appel depuis un formulaire:
'Dim Chronomètre As New Chrono
'Chronomètre.Start
'... code à chronométrer
'MsgBox Chronomètre.Value '~0.0052 ms "à vide" soit 5.2 microsecondes
Conclusion :
Intérêt majeur: chronométrer son propre code VB, pour déterminer quels sont les meilleurs algorythmes. Par exemple, mettre clairement en évidence que la fonction iif() est très, très lente comparée au if...then...else.
C'est un excellent moyen pour mesurer vos propres algorythmes! Et garder les meilleurs.
Bon code à vous les amis!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.