Сильные и слабые стороны компиляторов JIT для Python

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

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

Спасибо заранее,

Az

Ответ 1

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

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

Ответ 2

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

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