
Чтобы долго не объяснять что это и зачем — простой тест:
cnt = 10 * 1000 * 1000 for _ in xrange(cnt): i = i + 1
5.8млн операций сложения в секунду на обычном СPython 2.6 (
python test.py
)42.5млн операций в секунду на PyPy 1.2 (
pypy test.py
)WinXP SP3, Core2Duo.
Да, в 7 раз быстрее он тест сделал! И это не только на синтетическом тесте: «django» в 3 раза быстрее, «n-body» в 7 раз быстрее… Я не знаю что такое тест «richards», но он теперь вообще в почти 12 раз быстрее. Смотрите результаты сами.
Читать и качать (из раздела "«JIT compiler» version"). 64-bit версии пока нет. А unladen-swallow нервно курит... Под катом еще несколько невероятностей (stackless, «песочница для python кода»)..
В архивах их имеется также stackless версия… и главное sandbox версия! Это версия, которая решает давнюю проблему Python'a — отсутствие безопасной среды для исполнения кода, которому мы не доверяем. Внешний код на C и даже не позволит сделать
os.listdir('/')
, если я правильно понял намек авторов. Качается там же, где и обычная.Лично я вообще на PyPy смотрел как на странный эксперимент — Python и так не сказать что супер-быстрый, а писать его интерпретатор на самом же Python казалось просто
Авторы говорят о том, что в этой версии крэшей не наблюдается, но тем не менее просят все равно относиться к этой версии как к бете.
Кроме того авторы предупреждают, что из-за использования JIT пока что трудно контроллировать количество памяти, которую этот Python скушает. Но тут по сути «speed-memory tradeoff» в чистом виде получается.
Для меня, как большого фаната Python, да и для языка в целом — это просто настоящий прорыв. Теперь буду плотно следить за их развитием. Есть конечно в нем и тесты, по которым CPython выигрывает, но их значительно меньше, чем те, по которым проигрывает. Да и выигрыш не просто там 10-20%, а в 3x, 5x, 8x раз! В общем, звучит невероятно, но ребята из PyPy изобрели V8 но для Python'а.
Как пользоваться?
Скачать, распаковать, вместо
python ваш-скрипт.py
запустить pypy ваш-скрипт.py
Йои Хаджи,
вид с Хабра