Ça faisait longtemps que je voulais écrire un peu là-dessus et puis le temps tout ça... bref je viens de tomber sur deux billets qui m'ont motivé, apparemment je suis pas le seul à vouloir apprendre/faire partager sur Python. Coïncidence pas si pure que ça, la sortie du livre Programmation Python que j'attends depuis quelques semaines et que je compte acheter à Solutions Linux ou gagner :)
Je compte faire des billets de deux natures : les « bonnes pratiques » et l'optimisation, c'est ce que l'on trouve le moins facilement sur internet (ou alors j'ai mal cherché → commentaires) et c'est souvent assez crucial sur les gros projets.
Je préviens, je ne suis pas un pro et je vous invite à vérifier ce que j'écris par vous même, une astuce d'optimisation peut fonctionner dans une situation et pas dans une autre, tout dépend de votre problématique bien sûr.
Concernant l'optimisation, j'utilise le module profile qui est fait pour ça et qui est lancé 5 fois consécutives pour essayer de faire une moyenne assez satisfaisante.
Profile c'est pas vraiment ce qu'il y a de mieux pour faire des tests apparemment donc j'utilise maintenant timeit sur les judicieux conseils de David Allouche.
Le code est le suivant si vous souhaitez tester chez vous :
import timeit def footime(s, n=1): t = timeit.Timer(s, 'import string_optim ; reload(string_optim); gc.enable()') time = t.timeit(n) print time footime('string_optim.foo()', n=5)
Avec vos fonctions foo() dans le fichier string_optim.py pour ce cas précis.
Commentaires
szdavid le 21/01/2006 :
je vais suivre de très près tes prochains posts ; je suis aussi en train de me mettre au python :)
kNo' le 22/01/2006 :
C'est marrant, j'allais suggérer que les billets de cette catégorie apparaissent sur Planet Python-fr, mais je vois que quelqu'un y avait déjà pensé.
Voilà encore une fois du très très bon boulot, bravo et merci.
gml le 22/01/2006 :
D'ailleurs kNo' si tu vois d'autres blogs qui pourraient apparaitre sur le planet n'hésite pas à me le signaler :)