The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

29.10.2015 23:58  Выпуск PyPy 4.0, реализации Python, написанной на языке Python

Состоялся релиз PyPy 4.0, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). В отличие от прошлых выпусков, в версии PyPy 4.0 впервые наблюдается снижение производительности: новый выпуск в среднем на 1.5% медленнее прошлой версии PyPy, но по-прежнему в 7 раз быстрее классического CPython 2.7. Выпуск доступен для x86-систем Linux 32/64, OpenBSD, FreeBSD, OS X 64 и Windows 32, а также для систем на базе архитектуры ARM (ARMv6 или ARMv7 с VFPv3) и PowerPC (ppc64).

Значительная смена номера версии не означает кардинальных изменений и связана с переходом на новую схему нумерации выпусков. Так как следом за прошлым выпуском PyPy 2.6 должен был следовать номер 2.7, разработчики решили избежать возможных пересечений с нумерацией CPython 2.7 и перейти к номерам версий, заведомо отличающимся от актуальных выпусков Python. Ветка PyPy 4 продолжает поддерживать совместимость с CPython 2.7.10 и может рассматриваться как продолжение ветки PyPy 2.x.

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

Новшества, добавленные в PyPy 4.0:

  • В оптимизатор добавлена поддержка векторизации циклов с использованием инструкций SIMD. Векторизация осуществляется в процессе выполнения кода, что позволяет учитываться статистику выполнения и более оптимально использовать данный вид оптимизацию по сравнению с применением упреждающей компиляции. Определение поддержки инструкций SIMD также выполняется на лету и не требует включения в исполняемый файл предкомпилированного кода. Векторизация пока отключена по умолчанию и требует указания опции "--jit vec_all=1". Тесты производительности демонстрируют заметное ускорение выполнения функций математической библиотеки NumPyPy.
  • Проведён внутренний рефакторинг JIT-компилятора, который позволил на 20% сократить время "разогрева" JIT и на 20% снизить потребление памяти, ценой небольшого снижения производительности.
  • Расширены возможности интегрированной математической библиотеки Numpy, в которой приблизилась к полнофункциональному состоянию реализация типов ndarray и numeric, обеспечена поддержка типов record, string и unicode. Переработаны модули linalg, random и fft, которые переведены на интерфейс cffi-1.0 и теперь используют библиотеки, аналогичные основному проекту numpy.
  • До версии 1.3 обновлён модуль CFFI (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes. В новой версии улучшено управление жизненным циклом объектов, добавлен вызов __stdcall на платформе Win32, реализована поддержка ffi.memmove();
  • Обеспечена поддержка 64-разрядных PowerPC (big- и little-endian вариантов ppc64).


Основные особенности PyPy:

  • Поддержка бесстекового (Stackless) режима работы, позволяющего использовать модель actor (erlang-подобное программирование с массой микропотоков и отсыланием сигналов друг другу);
  • Реализация режима изолированного выполнения кода, к которому нет доверия. От sandbox в CPython данный режим отличается полной поддержкой всех возможностей языка без выделения unsafe-функций.
  • Автоматическая генерация и полная прозрачность встроенного JIT-компилятора;
  • PyPy успешно проходит стандартный тестовый пакет Python и поддерживает большинство из стандартных Python-модулей и фреймворков, таких как ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet. PyPy может быть использован для бесшовной замены CPython 2.7;
  • Поддержка работы на архитектурах x86 (IA-32) , x86_64 и ARM. Ведется работа по адаптации для архитектуры PowerPC (PPC64), но она ещё не завершена;
  • На базе технологий PyPy созданы бэкенды для генерации в PyPy байткода для LLVM и виртуальных машин .NET/CLI и Java.
  • На базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, Ruby, JavaScript, Io и Scheme.
  • Версия PyPy с поддержкой Python 3 развивается в рамках проекта Py3k;
  • Вариант PyPy с поддержкой распараллеливания на многоядерных системах развивается в рамках проекта PyPy-STM (PyPy Software Transactional Memory).


  1. Главная ссылка к новости (http://morepypy.blogspot.ru/20...)
  2. OpenNews: Выпуск PyPy 2.6, реализации Python, написанной на языке Python
  3. OpenNews: PyPy.js - реализация языка Python для web-браузеров
  4. OpenNews: Выпуск PyPy3 2.4, реализации Python 3, написанной на языке Python
  5. OpenNews: Первый выпуск PyPy-STM, интерпретатора Python с поддержкой многоядерных систем
  6. OpenNews: Первый стабильный выпуск PyPy3 с поддержкой Python 3
Лицензия: CC-BY
Тип: Программы
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, all_glory_to_the_hypnotoad, 00:10, 30/10/2015 [ответить] [смотреть все]     [к модератору]
  • –7 +/
    решили начать делать тру энтерпрайз продукт, однако ещё одни клоуны когда же... весь текст скрыт [показать]
     
     
  • 2.5, Аноним, 02:23, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +7 +/
    > ещё одни клоуны... когда же это закончится.

    не раньше, чем ты дашь дуба

     
  • 2.12, VLA, 11:04, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    Да, когда же вы уже закончитесь
     
  • 1.2, Кир, 00:51, 30/10/2015 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    А что там, кстати, слышно про Pyston, который вроде как альтернатива PyPy? Кто шустрее и лучшее?
     
     
  • 2.9, Аноним, 07:21, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Если вам нужно шустрее, то любой интерпретатор пайтона не для вас.
     
  • 2.10, Аноним, 08:44, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Питон по определению медленный, почитайте философию https ru wikipedia org wi... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Аноним, 12:50, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Если пункты про философию из import this, тогда это вообще про другое.
     
  • 3.34, Аноним, 00:22, 31/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Можно взять и перенести систему отступов в компилируемый язык Есть снижение чит... весь текст скрыт [показать]
     
     
  • 4.37, Аноним, 08:56, 01/11/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Взгляни на сам RPython, на Nim и на (шутка) Truthon.
     
  • 1.3, neon1ks, 01:06, 30/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    Плохая какая то оптимизация у CPython.
     
     
  • 2.11, Аноним, 08:49, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –5 +/
    Да что вы всё взяли, оптимизация, оптимизация Питон создан не для скорости, он ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, ., 15:59, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А я то думаю чего на нём всё больше и больше софта пишут А от того что язык не... весь текст скрыт [показать]
     
     
  • 4.30, Аноним, 21:06, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Не язык несерьезный, а люди на нем пишущие.
     
  • 4.31, Аноним, 21:07, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Больше пишут, только всё тяжелое глючное лагалово Миллионы пользователей убунты... весь текст скрыт [показать]
     
     
  • 5.39, Aleks Revo, 18:59, 01/11/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    171 Убунту 187 - это то самое африканское слово, которое переводится как 1... весь текст скрыт [показать]
     
  • 1.4, grec, 02:03, 30/10/2015 [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Это победа ... весь текст скрыт [показать]
     
  • 1.8, robux, 07:16, 30/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    > Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си (CPython).

    Странно для меня всё это...
    А что, JIT-компилятор к CPython слабо прикрутить?!
    Я например вообще удивлён, что у CPython нет своего JIT-компилятора...

     
     
  • 2.15, userd, 12:11, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Авторы Python как идеи и CPython как реализации к jit-ам равнодушны Есть нескол... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.16, Andrey Mitrofanov, 12:26, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Я правильно Вас понял, что авторы языка Python надизайнили его таким образом, чт... весь текст скрыт [показать]
     
  • 1.13, 123, 11:42, 30/10/2015 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    реализации Python, написанной на языке Python, реализации Python, написанной на языке Python, реализации Python, написанной на языке Python, реализации Python, написанной на языке Python, реализации Python, написанной на языке Python
     
     
  • 2.14, userd, 11:50, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    а что остановился?
    стек сорвало?
     
     
  • 3.17, Аноним, 12:32, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Это не рекурсия, это цикл ;)
     
     
  • 4.20, Аноним, 15:20, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Это оптимизированная хвостовая рекурсия.
     
  • 3.32, Аноним, 21:09, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Питон больше не тянет...
     
  • 2.21, Нимано, 15:50, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Гм, знаете, на чем самые используемые реализации си и плюсов написаны Или тех ж... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, ., 16:01, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Поверим - на Си.
     
     
  • 4.27, Нимано, 17:00, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Нет, не поверите https github com rust-lang rust tree master src librustc ... весь текст скрыт [показать]
     
     
  • 5.35, Аноним, 00:25, 31/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Си компилятор давно на си можно писать. Раскрутка компилятора.
     
  • 2.38, Аноним, 09:07, 01/11/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Финя Вот мой вариант Python написанный на Python написанный на Python написанн... весь текст скрыт [показать] [показать ветку]
     
  • 1.19, Аноним, 15:13, 30/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    А какая вообще ниша у этого гвидобейсика Никогда на нем на писал, а тут пришлос... весь текст скрыт [показать]
     
     
  • 2.24, ., 16:04, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    > А какая вообще ниша у этого гвидобейсика? Никогда на нем на писал,
    > а тут пришлось освоить... по мне так bash понятней и ясней
    > и js. Ну вот правда что должна быть за задача чтобы изначально выбрать питон?

    Да любая, кроме байтодрочерства. Но там и твой баш и js не в тему.
    А так - вкусовщина это всё, не нравится - бери перловку или ребе :)

     
  • 1.25, economist, 16:14, 30/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Python - 5-6-й по популярности язык. Ниши у него нет. У него есть призвание: вытеснять другие с их же "ниш и полей", даже будучи полностью бесплатным сыром:

    20% многомиллионного рынка ERP теперь занимает свободный продукт на Python

    20% школ в Британии преподают только Python вместо диалектов Basic

    20% сайтов используют Django или другие CMS на удаве

    20% компаний, использующих EDM в РФ - используют продукты на Python (+платно)

    20% выпускников прикладников "бауманки" написали удава 1-2 м в анкете

    20% скриптов автоматизации у меня в офисе - на Python.

    Все эти скорости в "попугаях" не имеют ничего общего с реальной скоростью разработки и отзывчивостью интерфейса готовой программы. А уж в плане "красивости" и ясности кода - он просто недосягаем. Код на питоне содержит на 60% меньше спецсимволов, чем в среднем другие Top-5 языков программирования.

     
     
  • 2.26, Аноним, 16:49, 30/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    слушайте вот эти заклинания про бесплатный сыр говорят обычно не умные люди GNU... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.28, economist, 17:09, 30/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    "Бесплатный сыр" свободного Python-а - это не сам он, а 800 тысяч бесплатных библиотек и библиотечек на все случаи жизни, многие из которых можно просто скачать и использовать, не задумываясь о копирайте в принципе.
     
     
  • 4.29, Аноним, 17:59, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    да просто сама эта поговорка Бесплатный сыр бывает только в мышеловке - ярко в... весь текст скрыт [показать]
     
  • 4.33, Аноним, 21:11, 30/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Бесплатный сыр питона на пробу оказывается тухловат и приготовлен с отклонениями... весь текст скрыт [показать]
     
  • 4.36, Аноним2.7, 21:56, 31/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    питон это бесплатное мясо
     
  • 1.40, Аноним, 22:19, 01/11/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    количество илитистов в этом треде бьет все рекорды
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor