J'essaie de faire en sorte que mon application vb6 fonctionne plus rapidement. vbaccélérateurs sgrid avec environ 10 000 articles en même temps (c'est une exigence du client).
J'ai dû remplir environ 20 colonnes pour chacun des 10 000 éléments, et je dois effectuer une comparaison de chaînes de caractères dans plus de la moitié d'entre elles. J'ai donc écrit une fonction de comparaison de chaînes de caractères et j'ai effectué un profilage.
Function IsEqual(byval value1 as string, Byval value2 as string) as boolean
' content, various versions are below
End function
actuellement les éléments = 5000 et chacun des temps ci-dessous montre le temps que cela a pris et les différentes versions de la fonction :
LCase$(Value1) = LCase$(value2)
temps : 29149 ms
(StrComp(Value1, value2, 1) = 0 )
temps : 30836 ms
If StrComp(Value1, value2, 1) = 0 Then
IsEqual = True
Else
IsEqual = False
End If
temps 34180 ms
If StrComp(Value1, value2, 1) = 0 Then IsEqual = True
temps 28387 ms
Le chronométrage se fait avec :
Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Declare Function timeGetTime Lib "winmm.dll" () As Long
qui renvoie le temps en millisecondes.
Est-il possible de rendre la comparaison plus rapide ?