AutoIT : Optimiser la vitesse de son logiciel

book
date_range
comment3 commentaires
remove_red_eye33913 vues

Autoit

AutoIT est un langage de développement informatique (auto-script). Il permet d'exécuter des tâches très simples en haut niveau avec une facilité d'écriture accentuée.

Voici comment optimiser votre code AutoIt

Afin de tester la rapidité du code, vous pouvez utiliser ce fichier : Autoit_Speed.au3

D'après les tests effectués avec le logiciel...

  1. Les boucles For/Next sont plus rapides que les boucles While/WEnd et Do/Until
    Local $i, $array 
    $array = _FileListToArray(@DesktopDir) 
    
    For $i = 1 To $array[0]
        MsgBox(0, "", $array[$i])
    Next 
  2. La condition If ($var) est plus rapide que If ($var == 1) ou If ($var == True)
    Ainsi que If Not ($var) est plus rapide que If ($var == 0) ou If ($var == False)
    Local $var 
    $var = FileExists(@DesktopDir)

    If ($var) Then MsgBox(0, "", "OK")
  3. La condition If ($var == 1) est plus rapide que If  ($var == True)
    Ainsi que If ($var == 0) est plus rapide que If ($var == False)

  4. Les opérateurs "<" et ">" sont plus rapides que les opérateurs "=", "<=", ou ">="
    $i += 1 est plus rapide que $i = $i + 1
    $i -= 1 est plus rapide que $i = $i - 1
    $i *= 1 est plus rapide que $i = $i * 1
    $i /= 1 est plus rapide que $i = $i / 1

  5. La condition Switch est la plus rapide, Select est moins rapide, If est le moins rapide
    Local $Error
    $Error = _WinAPI_GetLastError() 
    
    Switch $Error
          Case 1
               MsgBox(0, "", "Error 1")
          Case Else
               Return SetError($Error, 0, 0)
    EndSwitch 
  6. La condition If ($var) est plus rapide que If ($var <> "")
    Ainsi que la condition If Not ($var) est plus rapide que If ($var == "")

  7. L'opération If ($var -128 > 0) est plus rapide que If BitAnd($var, 128)

  8. Utiliser des nombres hexadécimaux est plus rapide qu'utiliser des nombres décimaux
    Local $val 
    $val = 0x000001 
    Return $val 
  9. Les variables avec des noms longs mettent plus de temps à l'exécution que des noms de variables courts

  10. La fonction StringRegExpReplace() est moins rapide que la fonction StringReplace()
    Ainsi que la fonction StringRegExp() est moins rapide que la fonction StringInStr()

  11. Utiliser Opt("ExpandEnvStrings", 1) quand cela est possible, $var = "%TEMP%" est plus rapide que  $var = EnvGet("temp") ou $var = @TempDir
    Ainsi, $var = @TempDir est plus rapide que $var = EnvGet("temp")

Conseils

  1. Evitez l'utilisation de variables lorsque cela est possible. Ex:
    Local $var 
    $var = @DesktopDir & "\test.txt" 
    
    If (FileDelete($var)) Then ... 
    
    ---------> 
    
    If (FileDelete(@DesktopDir & "\test.txt")) Then ...
    
  2. Préférez utiliser des variables globales pour les réutiliser plutôt que de redéclarer des variables locales (par exemple pour les boucles), cela évite de réallouer une variable.
    Global $i
    
    Func Test1()
         For $i = 0 To ...
         
         Next
    EndFunc 
    
    Func Test2() 
         For $i = 1 To UBound(...) -1
    
         Next 
    EndFunc 
  3. Evitez l'utilisation de fonctions lorsque cela est possible. Par exemple utiliser l'index 0 renvoyé par des fonctions renvoyant des tableaux plutôt  que UBound()
    Local $var, $i
    $var = _FileListToArray(@DesktopDir) 
    
    For $i = 1 To $var[0] 
         ... 
    Next 
  4. Déclarez les variables, puis initialisez-les. Ex
    Local $var
    $var = "test" 

Traduction de certaines parties de l'article sur AutoitScript.com

Articles similaires

Commentaires

playstation 4 - Invité - 22/01/2014 13:10
Je te remercie infiniment pour ces bouts de code, tu dois publier des tutos sur youtube ou si tu a déjà, peut-tu me communiquer ton pseudo !!

merci d'avance
Dinath - Administrateur - 23/01/2014 10:27
Nous avons en effet une chaîne Youtube, malheureusement peu mise à jour à cause d'un manque de temps :

http://www.youtube.com/user/SHZTeam
sofia - Invité - 03/03/2015 17:04
pour des personnes comme moi aussi nulles en code, trouver ce genre d'article est parfait.J'espère vraiment que vous trouverez du temps pour la chaîne car ça serait mieux pour nous, lecteurs.
Bonne continuation
1

Ajouter un commentaire

Vous ne disposez pas les autorisations nécessaires pour poster un commentaire.