Сильные и слабые стороны JIT-компиляторов для Python - PullRequest
11 голосов
/ 29 мая 2010

В настоящее время мне известны следующие JIT-компиляторы Python: Psyco, PyPy и Unladen Swallow.

В общем, я хотел бы попросить вас рассказать о ваших сильных и слабых сторонах этих компиляторов - и есть ли другие, на которые стоит обратить внимание.

Заранее спасибо,

Az

Ответы [ 2 ]

10 голосов
/ 29 мая 2010

У Кристиана Пероне есть отличная статья , опубликованная всего несколько дней назад, где он утверждает (с подтверждающими данными о тестах), что PyPy теперь самый быстрый, он проходит тест за 145 секунд против 300 для Unladen Swallow и 374 для CPython (Psyco не помогает, на самом деле PsycoV2 замедляет тест до 434 секунд), 557 для Jython - см. URL, который я только что дал, для всех деталей.

Конечно, вам нужно будет подтвердить это с помощью широкого диапазона тестов, но это, безусловно, кажется заслуживающим доверия и очень интересным. Над Pypy работает самая большая команда (и в течение многих лет, включая несколько лет при щедрой денежной поддержке исследовательских грантов Европейского Союза), поэтому весьма вероятно, что она теперь «полностью в движении» и готова к прайм-тайм! -)

1 голос
/ 27 августа 2012

Некоторые другие инструменты, которые вы могли бы исследовать для ускорения Python:

  • Cython, который требует указания типа всех переменных в соответствующем методе, а затем статически компилирует метод
  • Numba, для которой требуется LLVM, но это JIT (методы должны быть украшены типами аргументов для выполнения компиляции).
...