Classe chronomètre haute précision

Description

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!

Codes Sources

A voir également

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.