2010-05-29 24 views
11

Jestem obecnie świadomy następujących kompilatorów JIT Python: Psyco, PyPy i Unladen Swallow.Mocne i słabe strony kompilatorów JIT dla Pythona

Zasadniczo chciałbym zapytać o twoje osobiste doświadczenia na temat mocnych i słabych stron tych kompilatorów - i czy są jeszcze inne, które warto przyjrzeć.

Dzięki z góry,

Az

+0

To dość szerokie pytanie. Czy eksperymentowałeś z każdym z tych projektów? Jeśli nie, polecam spróbować. Jeśli tak, to czy masz jakieś konkretne pytania? Nie możemy zdecydować, który jest najlepszy * dla Ciebie *. –

+0

Chciałbym, ale mam termin, a mój przełożony nie chce się rozwijać. Tak więc, jeśli możesz polecić dobry punkt wyjścia, naprawdę to doceniam. Lub nawet najłatwiej zacząć, byłoby dobrze. Mogę prawdopodobnie zaktualizować, gdy tylko otrzymam więcej informacji. – PizzAzzra

+0

Nie jestem pewien, czy * dowolny * z tych projektów nadaje się do użytku produkcyjnego w tym momencie. Czy rozważałeś [py2exe] (http://www.py2exe.org/)? –

Odpowiedz

10

Christian Perone ma doskonały article z zaledwie kilka dni temu, gdzie twierdzi (wraz z potwierdzającymi dane porównawcze), które PyPy jest obecnie najszybciej, uruchamiając odniesienia w 145 sekundy vs 300 dla Nieobciążonej Jaskółki i 374 dla CPythona (Psyco nie pomaga, faktycznie PsycoV2 spowalnia test porównawczy do 434 sekund), 557 dla Jython - zobacz adres URL, który właśnie podałem dla wszystkich szczegółów.

Oczywiście trzeba to potwierdzić w wielu testach porównawczych, ale z pewnością wydaje się to wiarygodne i bardzo interesujące. Pypy ma największy zespół nad nim pracujący (i przez wiele lat, w tym kilkanaście lat z hojnym wsparciem finansowym z grantów badawczych Unii Europejskiej), dlatego jest całkiem wiarygodny, że jest teraz "w pełni gotowy" i gotowy na najwyższy czas! -)

+1

wow, dobra aktualizacja! Ciekawe, że wydajność JIT poprawia ją przez CPython, zacznę też testować :) – catchmeifyoutry

+0

W komentarzach pojawiają się negatywne wyniki. Czy próbowałeś PyPy na swoim własnym projekcie? Czy możesz porównać to do wydajności CPython? –

+1

PyPy jest ładne, chciałabym, żeby obsługiwały Py3K, nie zmuszając wyboru między szybkim Pythonem 2.x a wolnym Pythonem 3.x –

1

niektórych innych narzędzi można zbadać, aby przyspieszyć Pythona są

  • Cython, który wymaga określenia typu dla wszystkich zmiennych w odpowiedniej metody, a następnie statycznie kompiluje metoda
  • Numba, która wymaga LLVM ale jest JIT (metody muszą być ozdobione typami argumentów, aby kompilacja wystąpiła).
+0

jnnnnn podczas kompilacji w numba, czy musisz ręcznie skonfigurować "ast" llvm przed ręką ? Próbowałem go uruchomić, ale kończę w tym samym miejscu (Key Error ) Więc pomyślałem, że to ma coś wspólnego z samą LLVM. –