62 votes

Pourquoi l’itération d’un tableau est-elle plus rapide vers l’arrière que vers l’avant ?

Compte tenu de ce code :

En avant

En arrière

Transfert codé en dur

Pourquoi l’arrière est-il tellement plus rapide?

Voici le test : http://jsperf.com/array-iteration-direction

90voto

Bergi Points 104242

Parce que votre condition de transfert doit recevoir la propriété de votre tableau à `` chaque fois, tandis que l’autre condition n’a qu’à vérifier « supérieur à zéro », une tâche très rapide.

Lorsque la longueur de votre tableau ne change pas pendant la boucle et que vous regardez vraiment ns-perfomance, vous pouvez utiliser

BTW: Au lieu de cela, vous pouvez utiliser ce qui traverse vraiment votre tableau de n-1 à 0, pas de n à 1.

9voto

rabusmar Points 3844

Parce que dans le premier formulaire, vous accédez à la propriété du tableau une fois pour chaque itération, alors que dans le second, vous ne le faites qu’une seule fois.

7voto

tcak Points 778

Si vous voulez les avoir au même rythme, vous pouvez le faire pour l’itération vers l’avant;

Ainsi, votre script n’aura pas besoin de prendre de la longueur de tableau à chaque étape.

3voto

jfriend00 Points 152127

est plus rapide que et se produit à chaque itération de la boucle.

Vous pouvez atténuer la différence avec ceci:

Ce n’est toujours pas aussi rapide que l’élément en arrière, mais plus rapide que votre option avant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X