2010-05-29 6 views
11

Je suis actuellement au courant des compilateurs Python JIT suivants: Psyco, PyPy et Unladen Swallow. Fondamentalement, je voudrais demander vos expériences personnelles sur les forces et les faiblesses de ces compilateurs - et s'il y en a d'autres qui valent la peine d'être étudiés.Forces et faiblesses des compilateurs JIT pour Python

Merci à l'avance,

Az

+0

Ceci est une question assez large. Avez-vous expérimenté chacun de ces projets? Sinon, je recommanderais d'essayer cela. Si oui, avez-vous des questions spécifiques? Nous ne pouvons pas décider quel est le meilleur * pour vous *. –

+0

J'adorerais, mais je suis sur une date limite et mon superviseur ne bouge pas sur une extension. Donc, si vous pouvez recommander un bon point de départ, j'apprécierais vraiment cela. Ou, même le plus facile de commencer serait bien. Je peux probablement mettre à jour une fois que j'ai plus d'informations. – PizzAzzra

+0

Je ne suis pas sûr que * tout * de ces projets sont adaptés à l'utilisation de production en ce moment. Avez-vous considéré [py2exe] (http://www.py2exe.org/)? –

Répondre

10

Christian Perone a un excellent article de seulement il y a quelques jours où il prétend (à l'appui des données de référence) qui PyPy est maintenant le plus rapide, l'exécution de l'indice de référence en 145 secondes contre 300 pour Unladen Swallow et 374 pour CPython (Psyco n'aide pas, en fait PsycoV2 ralentit le benchmark à 434 secondes), 557 pour Jython - voir l'URL que je viens de donner pour tous les détails. Bien sûr, vous aurez besoin de confirmer cela sur un large éventail de tests de performance, mais cela semble très crédible et très intéressant. Pypy a la plus grande équipe qui y travaille (et depuis plusieurs années, y compris plusieurs années avec un soutien financier généreux des subventions de recherche de l'Union européenne), ce qui explique pourquoi il est tout à fait crédible et prêt pour la prime time! -)

+1

wow, bonne mise à jour! intéressant de voir les performances de JIT l'améliore sur CPython, je vais commencer à le tester aussi :) – catchmeifyoutry

+0

il y a quelques résultats négatifs dans les commentaires. Avez-vous essayé PyPy sur votre propre projet? Pouvez-vous le comparer aux performances de CPython? –

+1

PyPy est gentil, je souhaite juste qu'ils soutenaient Py3K, ne forçant pas un choix entre rapide Python 2.x et Python lent 3.x –

1

d'autres outils que vous pourriez enquêter pour accélérer le python sont

  • Cython, ce qui nécessite la spécification de type de toutes les variables dans la méthode correspondante puis compile statiquement la méthode
  • Numba, ce qui nécessite LLVM mais est JIT (les méthodes doivent être décorées avec des types d'arguments pour que la compilation ait lieu).
+0

jnnnnn quand vous compilez en numba, devez-vous configurer manuellement le 'ast' llvm avant main ? J'ai essayé de le faire fonctionner, mais je continue à finir au même endroit (Erreur de clé ) Donc j'ai pensé que c'était quelque chose à voir avec le LLVM lui-même. –

Questions connexes