tout d'abbod, voici un code qui permet de faire des test de rapidité, ça permettra de donner les résultats de l'optimisation en pourcentage rapidement.
Code : Tout sélectionner
#nb = 100000000
Temps1 = ElapsedMilliseconds()
For n = 1 To #nb
; mettre ici votre code 1
Next
Temps2 = ElapsedMilliseconds()
For n = 1 To #nb
; mettre ici votre code 2
Next
Temps3 = ElapsedMilliseconds()
MessageRequester("Test rapidité", "Solution 1 : " + Str(Temps2 - Temps1) + " ; Solution 2 : " + Str(Temps3 - Temps2) + Chr(10) + "Ratio = 1 / " + StrF((Temps2 - Temps1) / (Temps3 - Temps2)), 0)
Le cas du Int()
j'ai comparé ceci :
Y.l = Int(X.f) sachant que ceci tronque la valeur (1.7 devient 1 et 1.3 devient 1 par exemple)
avec
Y.l = X.f sachant que ceci arrondi la valeur (1.7 devient 2 et 1.3 devient 1 par exemple)
Le résultat est que le code sans Int() va 5 fois plus vite chez moi
Code : Tout sélectionner
#nb = 100000000
X.f = Cos(1)
Temps1 = ElapsedMilliseconds()
For n = 1 To #nb
Y.l = Int(X.f)
Next
Temps2 = ElapsedMilliseconds()
For n = 1 To #nb
Y.l = X.f
Next
Temps3 = ElapsedMilliseconds()
MessageRequester("Test rapidité", "Solution 1 : " + Str(Temps2 - Temps1) + " ; Solution 2 : " + Str(Temps3 - Temps2) + Chr(10) + "Ratio = 1 / " + StrF((Temps2 - Temps1) / (Temps3 - Temps2)), 0)
Multiplication
Multiplié par une valeur 2^n par exemple 2, 4, 8, 16, 32, etc ...
est plus rapide qu'une multiplication par un autres chiffres. (ente 1.2 et 1.5 fois)
Pas forcément facile à appliquer, je le reconnais

Code : Tout sélectionner
#nb = 100000000
X = 1524
Temps1 = ElapsedMilliseconds()
For n = 1 To #nb
Y = X * 100
Next
Temps2 = ElapsedMilliseconds()
For n = 1 To #nb
Y = X * 128
Next
Temps3 = ElapsedMilliseconds()
MessageRequester("Test rapidité", "Solution 1 : " + Str(Temps2 - Temps1) + " ; Solution 2 : " + Str(Temps3 - Temps2) + Chr(10) + "Ratio = 1 / " + StrF((Temps2 - Temps1) / (Temps3 - Temps2)), 0)
Si vous avez d'autres truc utile du genre
