Релиз PyPy 1.4, реализации Python, написанной на языке Python

28 ноября 2010 года

Представлен релиз проекта PyPy 1.4, в рамках которого разрабатывается реализации языка Python, на нём же написанная. Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, минуя фазу интерпретации байткода в виртуальной машине, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си. Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти.

В PyPy также поддерживается бесстековый (Stackless) режим работы, позволяющий добиться массового параллельного выполнения микропотоков (micro-threads). Для выполнения кода, к которому нет доверия, реализован режим изолированного выполнения, отличающегося от sandbox в CPython полной поддержкой всех возможностей языка без выделения unsafe-функций. Дополнительно на базе технологий PyPy созданы бэкенды для генерации в PyPy байткода для LLVM и виртуальных машин .NET/CLI и Java. Отдельно на базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, JavaScript, Io и Scheme.

При подготовке новой версии проведена большая работа по увеличению производительности, подготовлен 64-разрядный JIT-бэкенд и стабилизирована кодовая база. По заявлению разработчиков, 32- и 64-разрядные версии PyPy уже достаточно стабильны на платформе Linux и готовы для промышленной эксплуатации. Более того, версия PyPy 1.4 является первым релизом, который транслирует самого себя быстрее, чем CPython.

Некоторые особенности релиза PyPy 1.4:

  • Встроенный в PyPy JIT-компилятор генерируется автоматически и полностью прозрачен. Потребление памяти снижено до разумных границ, например, общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза при примерно двухкратном росте производительности выполнения;
  • Экземпляры классов теперь хранятся в более компактном представлении, настолько компактном, как если был они были созданы с атрибутом __slots__, что приводит к значительному снижению расхода памяти;
  • PyPy теперь полностью совместим с пакетом virtualenv, позволяющим создавать собственные виртуальные окружения Python;
  • Ускорена работа регулярных выражений, для оптимизации которых дополнительно задействована JIT-компиляция. Модуль "re" теперь работает значительно быстрее;
  • При вызове многих функций, например, map() теперь используется JIT-компиляция.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз PyPy 1.4, реализации Python, написанной на языке Python», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.