2010-05-29 7 views
11

Ich kenne derzeit die folgenden Python-JIT-Compiler: Psyco, PyPy und Unladen Swallow.Stärken und Schwächen von JIT-Compilern für Python

Grundsätzlich möchte ich Sie nach Ihren persönlichen Erfahrungen zu den Stärken und Schwächen dieser Compiler fragen - und falls es noch andere gibt, die es wert sind, untersucht zu werden.

Vielen Dank im Voraus,

Az

+0

Dies ist eine ziemlich breite Frage. Haben Sie mit jedem dieser Projekte experimentiert? Wenn nicht, würde ich empfehlen, das zu versuchen. Wenn ja, haben Sie spezielle Fragen? Wir können nicht entscheiden, welches das Beste für Sie ist *. –

+0

Ich würde gerne, aber ich habe eine Frist und mein Vorgesetzter ist nicht auf eine Erweiterung. Also, wenn Sie einen guten Ausgangspunkt empfehlen können, würde ich das wirklich zu schätzen wissen. Oder, sogar der einfachste Anfang wäre gut. Ich kann wahrscheinlich aktualisieren, sobald ich mehr Informationen dann bekomme. – PizzAzzra

+0

Ich bin mir nicht sicher, ob * irgendwelche * dieser Projekte für die Produktion geeignet sind. Hast du [py2exe] (http://www.py2exe.org/) in Betracht gezogen? –

Antwort

10

Christian Perone hat eine ausgezeichnete article von nur wenigen Tagen, wo er behauptet (mit Benchmark-Daten unterstützen), dass PyPy jetzt ist die schnellste, die Benchmark in 145 läuft Sekunden vs 300 für Unladen Swallow und 374 für CPython (Psyco hilft nicht, eigentlich verlangsamt PsycoV2 den Benchmark auf 434 Sekunden), 557 für Jython - siehe die URL, die ich gerade für alle Details gegeben habe.

Natürlich müssen Sie dies auf einer Vielzahl von Benchmarks bestätigen, aber es scheint sicher glaubwürdig und sehr interessant. Pypy hat das größte Team, das daran arbeitet (und das seit vielen Jahren, einschließlich mehrerer Jahre mit großzügiger finanzieller Unterstützung durch Forschungszuschüsse der Europäischen Union), weshalb es ziemlich glaubwürdig ist, dass es jetzt "voll in Gang" und bereit für die Primetime ist! -)

+1

wow, gutes Update! interessant zu sehen, JIT Leistung verbessert es gegenüber CPython, ich werde es auch testen :) – catchmeifyoutry

+0

gibt es einige negative Ergebnisse in den Kommentaren. Hast du PyPy auf deinem eigenen Projekt versucht? Kannst du es mit CPython Leistung vergleichen? –

+1

PyPy ist schön, ich wünschte nur, dass sie Py3K unterstützt, zwingt nicht eine Wahl zwischen schnellen Python 2.x und langsamen Python 3.x –

1

einige andere Werkzeuge, die Sie untersuchen können python zu beschleunigen sind

  • Cython, die Typangabe aller Variablen in dem betreffenden Verfahren erfordert und dann kompiliert statisch die Methode
  • Numba, die LLVM erfordert aber ist JIT (Methoden müssen mit Argumenttypen eingerichtet werden, damit die Kompilierung stattfindet).
+0

jnnnnn, wenn Sie in numba kompilieren, müssen Sie manuell das 'ast' llvm vorher konfigurieren ? Ich habe versucht, es zur Arbeit zu bringen, aber ich endende immer an der gleichen Stelle (Key Error Ast.In '>) Also dachte ich, es war etwas mit der LLVM selbst zu tun. –

Verwandte Themen