**Ceci est une ancienne révision du document !** ----
======Benchmark====== Bien que ne semblant avoir indépendemment que peu d'effets, l'application de l'ensemble de ces astuces dans un programme peut avoir un effet drastique sur son temps d'exécution. ====Appel de fonction==== Appel dans une boucle : <Code python> def doit(): something() rng = range(x) for i in rng: doit() </Code> Boucle dans la fonction : <Code python> def doit(x): rng = range(x) for i in rng: something() doit(x) </Code> ===Bench=== 1.000.000 de tours : - Appel dans une boucle : 1.341 - Boucle dans la fonction : 1.164 <barchart>0|50x20|100|Dans:100,Hors:70</barchart> ===Conclusion=== L'appel à une fonction prends du temps, il est donc bien plus rapide de mettre la boucle à l'intérieur de la fonction. =====Classes==== ====Accès aux méthodes==== Point dans la boucle : <Code python> arr = [] rng = range(x) for i in rng: arr.append(something()) </Code> Point hors de la boucle : <Code python> arr = [] append = arr.append rng = range(x) for i in rng: append(something()) </Code> ===Bench=== Calcul effectué 1.000.000 de fois : - Point dans la boucle : 1.307 - Point hors de la boucle : 1.157 <barchart>0|50x20|1.3|Dans:1.3,Hors:1.1</barchart> ===Conclusion=== La référence à une méthode de classe (syntaxe du point), au lieu d'être recalculée à chaque tour de boucle, peut être une fois pour toutes stockée dans une variable, accélérant notablement les calculs. =====WIP===== En cours d'écriture. A venir : benchmark code, parcourt et tri de tableaux/listes et dictionnaires, concaténation et vitesse des opérateurs mathématiques et de comparaison.