python:benchmark:loops

**Ceci est une ancienne révision du document !** ----

A PCRE internal error occured. This might be caused by a faulty plugin

====== Boucles ====== ===== Protocole ===== Boucle while : <Code python> i = 0 while i < x: something() i += 1 </Code> Boucle for : <Code python> for i in range(x): something() </Code> Boucle for préparée : <Code python> rng = range(x) for i in rng: something() </Code> ===== Résultats ===== <gchart 270x130 hbar right "Boucles à 1.000.000 de tours"> while = 0.6408 for = 0.6034 for préparée = 0.5895 </gchart> Moyenne de 10 essais sur des boucles à 1.000.000 de tours : - Boucle while : 0.6407999277 - Boucle for : 0.6034000397 - Boucle for préparée : 0,5895000458 <gchart 270x130 hbar right "Boucles à 10 tours (x10^-6)"> while = 6.115 for = 6.264 for préparée = 5.651 </gchart> Moyenne de 1.000.000 d'essais sur des boucles à 10 tours : - Boucle while : 0.000006115 - Boucle for : 0.000006264 - Boucle for préparée : 0,000005651 ===== Conclusion ===== La boucle for devant parcourir une liste d'éléments, l'initialisation de ladite liste lui prend du temps, problème que ne rencontre pas la boucle while. La boucle while est donc plus rapide lorsqu'il faut faire beaucoup de fois peu de tours. Une fois lancée la boucle for se montre par contre bien plus véloce que sa voisine, qui s'encombre à chaque tour de boucle d'une opération sur le compteur. La boucle for est donc plus rapide lorsqu'il faut faire peu de fois beaucoup de tours. La boule for "préparée", en n'apellant plus la fonction range() à chaque tour, se montre la plus véloce dans toutes les situations.