- optimisation : vitesse d'exécution
- optimisation : longueur du code
Vous pouvez poster de la manière suivante :
- un code simple
- une explication
- une comparaison éventuelle pour qu'on comprenne l'intérêt (si le code et l'explication ne suffisent pas ^^) et si possible un petit code permettant de comparer si c'est plus rapide (dans le cadre d'optimisation lié à la vitesse d'exécution).
N'hésitez pas à poster vos propres optimisations.
Comparaison multiple
Des variables peuvent changer, mais on les connaît à l'avance (pas leur valeur, juste le nom), par contre, pour les tester, on connait les valeurs de test.
- Optimisation : vitesse du code.
Au lieu de faire ça :
Code : Tout sélectionner
if a = 1 and b = 0 and c = 0
Elseif a = 0 and b = 3 and c = 17
Elseif a = -1 and b = 54 and c = 898
Endif
Code : Tout sélectionner
If a = 1
If b = 0
If c = 0
EndIf
EndIf
ElseIf a = 0
If b = 3
If c = 17
EndIf
EndIf
ElseIf a = -1
If b = 54
If c = 898
EndIf
EndIf
EndIf
Changer la valeur d'une variable(booléen)
Ce code peut servir pour les interfaces, pour tester un gadget checkbox par exemple, ou pour vérifier si une option est activé.
- optimisation : Code plus court (pas forcément plus rapide)
Au lieu de faire ça :
Code : Tout sélectionner
if truc = 1
truc = 0
elseif truc = 0
truc = 1
endif
Code : Tout sélectionner
truc = 1-truc
Autre astuce
Si vous avez le choix entre vérifier une variable numérique ou string, il vaut mieux préférer la variable numérique.
Il semble que vérifier la valeur d'une variable soit plus rapide si celle-ci n'est pas un string.
Code : Tout sélectionner
max = 10000000
tps = ElapsedMilliseconds()
i =0
Repeat
If truc=1
EndIf
i+1
;Delay(1)
Until i >= max
tpsfinal = ElapsedMilliseconds() - tps
tps2 = ElapsedMilliseconds()
i =0
Repeat
If truc$="1"
EndIf
i+1
;Delay(1)
Until i >= max
tpsfinal2 = ElapsedMilliseconds() - tps2
MessageRequester("",Str(tpsfinal))
MessageRequester("",Str(tpsfinal2))