Journal pypy de plus en plus rapide ?
D'après http://www.silicon.fr/python-mettez-le-turbo-avec-pypy-14-43(...) , ça va de plus en plus vite chez pypy. Je ne connais pas suffisement le python pour développer, mais peut être que ça peut en interresser certains.
# Scatogiciel
Posté par Davy Defaud . Évalué à 10.
[^] # Re: Scatogiciel
Posté par liberforce (site web personnel) . Évalué à 7.
http://caca.zoy.org/wiki/libpipi
[^] # Re: Scatogiciel
Posté par Davy Defaud . Évalué à 3.
La charte graphique ne laisse planer aucun doute sur le fait que les développeurs sont bien de chez nous... ;-)
[^] # Re: Scatogiciel
Posté par B16F4RV4RD1N . Évalué à 8.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# Excellente nouvelle... qui se lance ?
Posté par Alexandre COLLIGNON (site web personnel) . Évalué à 3.
Qui pense l'adopter rapidement ?
bref, j'aimerai avoir le ressenti des moules... ça m'intéresse.
Alexandre COLLIGNON
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Guillaum (site web personnel) . Évalué à 3.
Bref, globalement c'est vraiment positif pour les performances sur des algos "crunching numbers". Pour la stabilité en production et l'occupation mémoire, je ne peux pas me prononcer.
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Jiba (site web personnel) . Évalué à 2.
D'autant plus que les nouvelles version de Python (3.x) ne m'enthousiasme pas des mases :
* incompatible avec les versions 2.x
* pas de "vraies" nouveautés de grande empleur
* tous les modules ne sont pas encore traduit pour Python 3, et / ou pas encore empaquetés dans les distributions Linux
Je suis le seul dans cette situation ?
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Carl Chenet (site web personnel) . Évalué à 4.
Oui, elles sont en effet incompatibles, c'est le prix à payer pour les vraies nouveautés et pour retrouver une syntaxe cohérente (passage au monde moderne avec l'unicode par défaut, fin du mot-clé print et des noms de modules avec des majuscules et bien d'autres). Sans parler de la ré-écriture du code. T'as un excellent utilitaire fourni avec les archives de Python qui te traduit du code 2.x vers 3.x. Le script s'appelle 2to3.
pas de "vraies" nouveautés de grande empleur
Si on omet ce que j'ai déjà évoqué, ça fait quand même deux versions (2.6 et 2.7) que les nouvelles fonctionnalités les plus intéressantes de la branche 2.x arrivent directement de la branche 3.x.
tous les modules ne sont pas encore traduit pour Python 3, et / ou pas encore empaquetés dans les distributions Linux
Franchement ça se fera pas en un jour mais le chantier progresse bien. Tu trouves des grosses bibliothèques comme sqlalchemy qui tournent sous python3. Sachant que Python c'est "battery included" t'as vraiment de quoi t'en sortir en attendant.
Enfin pour quelqu'un qui veut commencer le Python aujourd'hui, lui conseiller même python2.7 face à python3.1 ou python3.2 qui sort en début 2011 serait une grave erreur à mon avis (alors que je considère que python2.7 est une excellente dernière version de branche).
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Jiba (site web personnel) . Évalué à 2.
Python inclut des batteries mais elles ne me suffisent pas... j'ai besoin de GTK pour faire des interfaces graphiques, de Cairo pour le graphisme, d'OpenGL / Soya pour la 3D,...
Le changement de syntaxe est plus gênant qu'autre chose... je suis pas convaincu que ça justifie de perdre la compatibilité antérieure (il n'y avait VRAIMENT pas moyen d'avoir un print qui accepte les 2 syntaxes, ou d'ignorer les u qui précède les chaînes de caractères ?).
Quand à 2b3, les premiers essais que j'avais fait étaient guère concluant... le code généré était pas optimal, pas toujours très lisible et pas toujours fonctionnelle non plus :-(
Il faut dire que dans un langage "duck typé" comme Python, comment changer tous les appel à une méthode (par exemple dict.items()) quand on ne peut pas savoir si une variable contient un dictionnaire ou un autre objet qui a aussi une méthode dict ?
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Guillaum (site web personnel) . Évalué à 1.
Pour OpenGL, je m'en sert tous les jours avec python3, aucun soucis.
Pour Soya, tu sais ce qu'il te reste à faire ? ;)
Sinon, pour le u'' et le print, tu peux faciliter ta transition en utilisant (python2.6), from __future__ import print_function, unicode_literals.
Personnellement, ce qui me pose le plus de problème actuellement avec python3 c'est le manque de packaging correcte de la plupart des distributions. Hormis ce détail, et bien... Python3 c'est bon, mangez en ;)
(Et globalement, pypy c'est pire que python3 d'un point de vu extensions portées, il faut compiler toutes les extensions soit même)
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Victor STINNER (site web personnel) . Évalué à 1.
Si on omet ce que j'ai déjà évoqué, ça fait quand même deux versions (2.6 et 2.7) que les nouvelles fonctionnalités les plus intéressantes de la branche 2.x arrivent directement de la branche 3.x.
Python 3 est devenu le nouveau "trunk" du projet Python. Les nouveautés sont développées dans Python 3 et certaines ont été portés dans Python 2(.7).
C'est un choix que Python 3 ne contienne pas trop de nouveautés : une grosse partie des nouveautés de Python 3.1 et 3.2 ont été portés dans Python 2.7 pour... faciliter le portage Python 2 vers Python 3.
tous les modules ne sont pas encore traduit pour Python 3, et / ou pas encore empaquetés dans les distributions Linux
J'ai commencé une liste, sûrement incomplète : http://www.haypocalc.com/wiki/Python#Modules_disponibles_pou(...)
PyQt est un gros projet qui a été porté vers Python 3. Par contre, Twisted, Zope et Django, ce n'est pas encore fait je crois.
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par cho7 (site web personnel) . Évalué à 5.
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par wilk . Évalué à 1.
147
6X2
385
J'ai écrit le code pour python, c, php, java et différentes variations python.
Avec pypy1.4 il n'y a quasiment pas de différence avec cpython, en revanche il y a énormément de différence avec psyco... (de 3m contre 2s), je trouve curieux que ce genre de code n'ait pas été plus optimisé, il faudra que je leur en parle...
http://hg.flibuste.net/libre/games/cheval/file
En revanche je viens d'essayer sur petit programme de calcul d'itinéraires (un vrai programme en prod), c'est impressionnant, le résultat est similaire qu'avec psyco, le rapport est de 1 à 100 ! C'est très prometteur.
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Guillaum (site web personnel) . Évalué à 1.
http://hg.insecable.net/hgwebdir.cgi/guibou/hg/cheval/file/4(...)
Sur cette solution je suis à 13s alors qu'avant c'était 50s
Il y a encore moyen de bien gagné en faisant une table des jumps possibles, je passe à 9 secondes.
Il y a aussi une autre solution qui doit être encore plus rentable en C, c'est de faire une grille circuit un peu plus grande (de 2 de plus sur chaque bords) et de mettre les valeurs de ces bords à != 0, comme cela tu peux virer tous les tests dans la boucle principale ;)
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par wilk . Évalué à 1.
ton code
cpython 124s
pypy 13s
psyco 4s
le mien
cpython 86s
pypy 107s
psyco 1s
[^] # Re: Excellente nouvelle... qui se lance ?
Posté par Guillaum (site web personnel) . Évalué à 1.
Mon code:
cpython (2.6) 98s
pypy (1.4) 13s
psyco (Pas/plus disponible sur ubuntu maverick)
Ton code:
cpython: 69s
pypy: 88s
Au passage, j'utilise le pypy 64 bits...
C'est en effet marrant ;) Autant qu'il y ai une telle différence entre les deux pypy c'es marrants, mais que dans le cas de ton code pypy mette plus de temps que cython alros que dans le cas de monde code c'est l'inverse...
# Erreur de l'article
Posté par Guillaum (site web personnel) . Évalué à 5.
Il permettra d’exécuter du code Python adapté (basé sur un sous-ensemble du langage, RPython) plus rapidement qu’avec l’interpréteur officiel (CPython)
En pratique pypy est écrit en RPython, sous ensemble de python, mais pypy exécute n'importe quelle code python (2.5) sans modifications.
# Liens
Posté par patrick_g (site web personnel) . Évalué à 3.
Lie vers un benchmark entre CPython 2.6 et PyPY 1.4 : http://speed.pypy.org/comparison/?exe=2%2B35,1%2B172&ben(...)
ça a l'air de bien déménager !
[^] # Re: Liens
Posté par Yakulu . Évalué à 3.
Si on en croit la comparaison CPython / Pypy [3, 4], Pypy s'avère grosso modo deux fois plus rapide que l'implémentation officielle mais il consomme quelque chose comme 5 fois plus de mémoire vive, soit un peu plus que Java [5], du moins pour ces tests.
1 : [http://shootout.alioth.debian.org/u32/benchmark.php?test=all(...)]
2 : [http://shootout.alioth.debian.org/u64/benchmark.php?test=all(...)]
3 : [http://shootout.alioth.debian.org/u32/benchmark.php?test=all(...)]
4 : [http://shootout.alioth.debian.org/u64/benchmark.php?test=all(...)]
5 : [http://shootout.alioth.debian.org/u32/benchmark.php?test=all(...)]
# Pour les perfs il y a aussi Psyco
Posté par marahi . Évalué à 2.
Uniquement pour Python 2.6 et pour architectures x86 seulement, par contre pour la stabilité ???
[^] # Re: Pour les perfs il y a aussi Psyco
Posté par monde_de_merde . Évalué à 3.
"My plans for 2006 are to port the techniques implemented in Psyco to PyPy."
C'est un peu à l'abando psycho. Mais sinon des projets pour "accélérer" python, on a quelqu'un hein : Unladen Swallow, Stackeless, Cython...
[^] # Re: Pour les perfs il y a aussi Psyco
Posté par Yakulu . Évalué à 4.
Unladen [3] semble bien ralenti malheureusement. Le dernier changement de code date d'août et la dernière sortie est intervenue fin 2009. Néanmoins, les auteurs ont rédigé en janvier une PEP [4] pour demander l'inclusion dans CPython. A ce propos, je vois que son statut est à accepted. Après recherche, il semblerait que les auteurs visent la fusion avec CPython 3.3 [5]. La sortie 2009Q3 promettait une CPython accéléré de l'ordre de x1.5 dans les tests pour une consommation mémoire un peu plus importante [6].
Stackless [7] est un peu à part car il implémente le concept de tasklets, destiné à la concurrence. De fait, j'imagine qu'il faut des morceaux de code spécialement écrits avec / pour. Par ailleurs, pour ceux que cela intéresse, Greenlets [8] est un module Python standard qui permet d'utiliser les tasklets sans Stackless.
Cython [9] me parait l'un des plus intéressants de la liste si l'on cherche les performances. Il permet, en employant le sous-langage typé, qui limite un peu le Python classique mais reste tout de même proche, au moins dans sa syntaxe, de concevoir des modules traduits en C. Ceux-ci apporteraient des gains très importants. Notons aussi Shedskin [10], un compilateur Python -> C++ dont les résultats sont tout aussi impressionnants (de 2 à 2000 fois plus rapide que CPython il parait). Là aussi, le but est de générer des modules Python avec du statiquement typé (de manière implicite) voire des exécutables indépendants.
Bref, comme vous le disiez, les pistes ne manquent pas pour enlarge your Python.
1 : [http://psyco.sourceforge.net/]
2 : [http://shootout.alioth.debian.org/gp4/benchmark.php?test=all(...)]
3 : [http://code.google.com/p/unladen-swallow/]
4 : [http://www.python.org/dev/peps/pep-3146/]
5 : [http://groups.google.com/group/unladen-swallow/msg/b966b7d5e(...)]
6 : [http://code.google.com/p/unladen-swallow/wiki/Release2009Q3]
7 : [http://www.stackless.com/]
8 : [http://bitbucket.org/ambroff/greenlet]
9 : [http://www.cython.org/]
10: [http://code.google.com/p/shedskin/]
# GIL
Posté par El Titi . Évalué à 2.
Qu'utilise PyPy pour l'exécution concurrente.
Y a t'il un GIL ?
[^] # Re: GIL
Posté par HardShooter . É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.