Un domaine dans lequel les JVMs sont plus avancées que Python est celui de l'optimisation des exécutions de bytecodes. Psyco, un compilateur spécialisé Python, aide à préparer le terrain. Pour le moment Psyco n'est qu'un module externe mais rien ne dit qu'un jour il ne sera pas inclus à Python lui-même. Avec seulement un peu de programmation supplémentaire, Psyco peut souvent sutiliser pour augmenter la vitesse du code Python à la puissance dix. Cet article examine ce qu'est réellement Psyco et le teste dans quelques applications.
Aller plus loin
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par schyzomarijks . Évalué à -3.
chrisix< help :-)
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par swapon . Évalué à 6.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par lorill (site web personnel) . Évalué à 3.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Pierre . Évalué à 0.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Pascal Terjan (site web personnel) . Évalué à 8.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par ufoot (site web personnel) . Évalué à 6.
L'article parle entre autres d'optimiser les routines de type "petite boucle répétitive", qui manipule des entiers et des flottants. Ce n'est pas un "optimisateur" magique générique qui transforme tout code en code qui va 10X plus vite. Simplement ça permet d'optimiser les petits bouts de code simples qui sont en général une plaie - en terme de perf - dans tous les langages de script. Typiquement, il est assez balaise de faire plus rapide (indépendemment de l'algo) en script l'équivalent du code C:
for (i=0;i<n;++i) {
sigma+=sigma*i;
}
Sinon l'article est pas mal et présente (je trouve) une bonne approche de la notion d'optimisation en général.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Jiba (site web personnel) . Évalué à 1.
Si si... c'est 1 peu + rapide (par ex. en calcul pur).
En effet, Python "traditionnel" fonctionne en interpréteur, alors que avec Jython + JVM + JIT, le code Python termine en code natif -- donc + rapide.
Par contre Python est assez léger, alors que Java l'est beaucoup moins, et Jython est encore une couche par dessus => ce que tu aurais pu gagner tu le reperd en mémoire et en temps de démarrage...
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par ufoot (site web personnel) . Évalué à 1.
http://mail.python.org/pipermail/i18n-sig/2000-July/000348.html(...)
Et il me semble que ce dont tu me parles (Jython + JVM + JIT) revient à peu près au même. A savoir: tu obtiens une série de classes qui contiennent l'interpréteur + le bytecode déjà compilé, mais - comme dans le cas du Python "natif" - ce n'est pas une compilation au sens traditionnel du terme...
http://www.geocrawler.com/archives/3/7017/2001/6/0/5991844/(...)
De ce que j'en sais, Jython est réellement une transposition de Python vers le monde Java. Un des grands avantages étant que tu as facilement accès aux bibliothèques Java, de même qu'avec le Python normal on s'interface assez bien avec les bibliothèques C. Mais je ne pense pas qu'il y ait de grandes différences au niveau des concepts d'interprétation, de bytecode, de compilation, etc. Fondamentalement, Python et Jython c'est la même chose.
Il me paraîtrait étrange que Jython ait des extensions aussi intéressantes qu'un compilateur en bytecode Java - qui n'embarque pas l'interpréteur de bytecode Jython - sans que les responsables du projet Python n'aient pensé faire la même chose pour du code binaire natif. Si c'est possible en Java c'est possible en C. Enfin tout le monde peut se tromper 8-)
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par kesako . Évalué à 1.
C'est dommage parceque sinon c'est pas mal au niveau clarté , fonctionnalités , lib disponibles ,...
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par menez bernard . Évalué à 3.
Non, mais par contre, il faut respecter une grande rigueur dans l'indentation : ne pas alterner les tabulations ( mais de toutes façons, les tabulations en règle générale, ce n'est pas conseillé), et les espaces et garder toujours à l'esprit le nombre d'espace qu'on utilise et le respecter. Sinon Python se mélange les pinceaux.
Mais c'est vrai que c'est pénible ;(
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par swapon . Évalué à 1.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par lorill (site web personnel) . Évalué à 1.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par dinomasque . Évalué à 2.
Pour C, C++, Java et les autres, il suffit de suivre une convention et tout va bien.
Par exemple pour C, la convention K&R semble toute indiquée, et pour Java, ca tombe bien, le langage a une convention propre.
Comme ca, si quelqu'un pisse du code de travers, un p'tit coup de moulinette et ca devient tout propre :)
BeOS le faisait il y a 20 ans !
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par reno . Évalué à 1.
Tu risque de devoir faire la meme modification/correction 20 fois, si tu fais 20 copier/coller..
Ceci dit au moins avec Python, tu es sur que le code est toujours indenté: c'est un language lecteur-friendly pas écrivain-friendly.
Mais comme en maitenance de code, on passe plus de temps a relire du code qu'a en ecrire, c'est aussi du bénéfice pour le développeur.
Un truc qui m'ennuie fortement c'est que ce sont les espaces qui sont conseillés pour indenter le code.
Grrr, cela fait 10 ans que j'indente mon code religieusement avec des tabulations de 4 blanc et maitenant pour Python il faut changer, c'est con mais je n'aime pas du tout ça..
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Bulle . Évalué à 1.
Bah non, y a le search and replace et les regexps :-)
Grrrruuuuuiiiiiikkkk
L'est où la boite [-1] (parce que je vaux bien ?)
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Dugland Bob . Évalué à 1.
je me demande de plus en plus si tu n'as pas raison, j'ai eu énormément de conneries ces derniers temps à cause de ça.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Dugland Bob . Évalué à 2.
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par swapon . Évalué à 3.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Jerome Alet (site web personnel) . Évalué à 1.
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Jiba (site web personnel) . Évalué à 1.
[^] # Re: Faites marcher Python aussi vite que C avec Psyco
Posté par thedidouille . Évalué à 2.
# Re: Faites marcher Python aussi vite que C avec Psyco
Posté par Maykeul . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.