Последние изменения в модели исполнения Python? - PullRequest
15 голосов
/ 09 июля 2011

Я только что перечитал раздел о моделях исполнения в 3-м издании Learning Python (конец 2007 г.), и это показалось мне довольно условным. Итак, я посмотрел на тот же раздел в 4-м издании (конец 2009 г.) и был довольно разочарован тем, что он полностью не изменился.

Каков статус выполнения Python за пределами CPython? Такое чувство, что Jython и IronPython по-прежнему нишевые проекты; появились другие подобные проекты? Psyco достаточно хорошо отвердел, чтобы использовать его, не беспокоясь? Много ли людей используют ShedSkin? Есть ли информация о том, когда PyPy обычно быстрее для выполнения?

1 Ответ

22 голосов
/ 09 июля 2011

Разработчик Psyco, Армин Риго, теперь работает над PyPy вместе со многими другими блестящими разработчиками.PyPy очень активно развивается, и в будущем запланировано много захватывающих вещей .PyPy, скомпилированный с JIT, почти всегда быстрее, чем CPython, часто с большим отрывом .У них есть коллекция тестов, отслеживающих их прогресс .Это быстро становится очень популярной реализацией .В отношении PyPy следует отметить:

  1. Очень хорошая реализация Python, в настоящее время реализует Python 2.7.1, так что вы можете использовать самые последние и лучшие возможности языка, доступные за пределами 3.x.

  2. JIT обеспечивает некоторые по-настоящему удивительные ускорения, и поддержка PyTy в ctypes может быть даже быстрее, чем ctypes в CPython.

  3. Набор инструментов переводаочень гибкий.Вы можете работать с разными бэкэндами, создавать с поддержкой без стеков, менять и извлекать сборщики мусора, создавать с использованием JIT и т. Д.

  4. Довольно полная поддержка ctypes и частичная поддержка API C (поддержка обоих быстро улучшается).

  5. Вы можете написать в RPython все, что захотите, и перевести его, чтобы вы могли использовать цепочку инструментов перевода аналогично ShedSkin.

ShedSkin все еще разрабатывается, и я использовал его несколько раз в прошлом году.Он поддерживает ограниченное подмножество Python и значительную часть стандартной библиотеки.Это стоит посмотреть.Я бы не рекомендовал Jython или IronPython, если вам не нужно работать на JVM или CLR.Похоже, вас также заинтересует Cython .

...