Tester le temps d'exécution d'une fonction


Le code qui suit permet de connaître en millisecondes le temps d'exécution d'une fonction.

L'argument "strFunction" correspond au nom de la fonction que l'on souhaite tester, si cette dernière a des arguments obligatoires, il conviendra de les renseigner dans cette variable.

L'argument "lngX" permet de spécifier le nombre de fois que l'on souhaite lancer la fonction pour la tester, cet argument n'est pas obligatoire, sa valeur par défaut et "1". Pour de grosses fonctions assées longues, il n'est pas utile de renseigner cet argument par contre lorsque la fonction est très rapide (moins d'une seconde) il vaut mieux le spécifier.

Public Function TimeOfFunction(strFunction As String, Optional lngX As Long = 1) As Long

'** Fonction permettant de tester le temps
'** d'exécution d'une fonction

Dim sngStart As Single
Dim sngEnd As Single
Dim i As Long

sngStart = Timer
For i = 1 To lngX
    Eval (strFunction)
Next
sngEnd = Timer
TimeOfFunction = (sngEnd * 1000) - (sngStart * 1000)

End Function

Cette fonction pourra être appelée de la façon suivante par exemple pour tester fonction1 et fonction2 :

Debug.Print "Teste fonction1", TimeOfFunction ("fonction1('argument texte fonction 1')", 10000)
Debug.Print "Teste fonction2", TimeOfFunction ("fonction2('argument texte fonction 2')", 10000)

 

Retour haut de page

Auteur : Jessy SEMPERE