Partage
  • Partager sur Facebook
  • Partager sur Twitter

optimisation d'une boucle for

Sujet résolu
    10 juin 2018 à 21:05:45

    Bonsoir,

    Dans le cours, cette syntaxe est conseillée car considérée comme plus optimisée par rapport à la seconde :

    for (let i=0, let iMax=array.length ; i<iMax ; i++) // optimisé
    for (let i=0 ; i<array.length ; i++) // à éviter

    En effet, on ne récupère pas la variable length à chaque itération.

    Cependant, dans ce cas, cette variable est directement accessible : on ne passe pas par une fonction pour la calculer par exemple. Du coup est-ce que cette syntaxe est réellement plus optimisée étant donnée qu'il faille déclarer une variable en plus ?

    Je suis conscient que les bénéfices de performances apportés par l'une ou l'autre syntaxe sont minimes mais je demande aussi par simple curiosité.

    Merci, bonne soirée.

    -
    Edité par Cl00e9ment 10 juin 2018 à 21:06:17

    • Partager sur Facebook
    • Partager sur Twitter
      11 juin 2018 à 16:53:17

      La différence de performance entre les deux syntaxes est probablement quasi nulle dans un navigateur récent.

      En fait la deuxième syntaxe est en théorie moins rapide, car il faut à chaque itération :

      - remonter la pile pour retrouver la variable array

      - récupérer sa propriété length

      Alors que dans la première syntaxe, la variable iMax est déclarée au plus proche de la boucle.

      • Partager sur Facebook
      • Partager sur Twitter
        11 juin 2018 à 20:59:05

        Si tu as un tableau avec plus de 20 000 résultat, cela pourrais être interessant d'y voir les performances, mais en dessous de 2000 ça ne vaux pas la peine. Impossible à voir la différence à l'oeil nu.
        • Partager sur Facebook
        • Partager sur Twitter
        Autodidacte, j'essaye d'apprendre le pourquoi du comment :)
          12 juin 2018 à 8:28:47

          Après les navigateurs récent détecte ce genre de soucis et en extrait une variable temporaire. Cela n'empêche pas de le faire car c'est plus propre et si tu as besoin à l'intérieur de la taille pour X raison, au moins tu l'a :)
          • Partager sur Facebook
          • Partager sur Twitter
            17 juin 2018 à 15:33:54

            Ok merci pour vos réponses. C'était très intéressant.
            • Partager sur Facebook
            • Partager sur Twitter

            optimisation d'une boucle for

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown