The OpenNET Project / Index page

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

Выпуск PyPy 2.5, реализации Python, написанной на языке Python

04.02.2015 09:20

Представлен релиз PyPy 2.5, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Новый выпуск примечателен значительным увеличением производительности, он в среднем на 10% быстрее прошлой версии PyPy и в 6.93 раза быстрее классического CPython 2.7. Выпуск доступен для x86-систем Linux 32/64, OpenBSD, OS X 64 и Windows 32, а также для систем на базе архитектуры ARM (ARMv6 или ARMv7 с VFPv3).

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

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

  • Сокращено время "разогрева" JIT-компилятора и увеличена производительность генерируемого им кода. По сравнению с прошлым выпуском производительность возросла более чем на 10%. Отключено по умолчанию обнуление выделяемой в сборщике мусора памяти;
  • Улучшена передача объектов между кодом на языке Си и PyPy. В Си теперь можно передавать прямые указатели (без копирования), что позволило поднять пропускную способность ввода/вывода. Тесты показали увеличение производительности выполнения интенсивных сетевых операций приблизительно на 50%. Операции с файлами ещё требуют дополнительной оптимизации и пока демонстрируют рост производительности на 20%;
  • Расширены возможности интегрированной математической библиотеки numpy, в которой появилась поддержка API GenericUfunc и добавлен модуль линейной алгебры linalg, основанный на пакете LAPACK.
  • Осуществлён переход на использование по умолчанию упорядоченных словарных типов, более эффективных с точки зрения потребления памяти и позволяющих добиться более высокой производительности класса collections.OrderedDict;
  • Выполнена более аккуратная обработка кодов ошибок (errno, GetLastError, WSAGetLastError) с приближением реализации обработчиков к внешним вызовам функций;
  • В документации полностью разделены возможности PyPy, связанные с поддержкой интерпретатора Python и подмножества данного языка со статической типизацией - RPython (Restricted Python), нацеленного на написание быстрых интерпретаторов динамических языков программирования.



Основные особенности 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: Выпуск PyPy3 2.4, реализации Python 3, написанной на языке Python
  3. OpenNews: Выпуск PyPy 2.4, реализации Python, написанной на языке Python
  4. OpenNews: Первый выпуск PyPy-STM, интерпретатора Python с поддержкой многоядерных систем
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/41604-pypy
Ключевые слова: pypy
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Какаянахренразница (ok), 10:15, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > реализации языка Python, написанной на языке Python

    Yo, dawg, I heard you like Python, so we wrote Python in Python so you can run a Python script while running a Python script.

    Перевод: Йо, дог, я слышал, что ты любишь Питон, так мы тебе написали Питон на Питоне, чтобы ты мог запускать питоновские скрипты, запуская питоновские скрипты.

    Картинка: http://www.quickmeme.com/img/e5/e5e5d17a95704d39421f34f44f867460bf75528f20e57

     
     
  • 2.2, Аноним (-), 10:18, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Евгений Ваганович, уже несмешно.
     
     
  • 3.4, Какаянахренразница (ok), 10:26, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +14 +/
    > уже несмешно.

    Не стреляйте в петро^Wпианиста — он играет, как умеет (C)

    А тебе плюс, мой анонимный друг. За честность и за обращение по имени-отчеству.

     
     
  • 4.32, Йух (??), 19:00, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    скорее в питониста
     
  • 2.17, Аноним (-), 14:53, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Что ни там курят, те кто пишут пипирку и общаются с собаками?
     
     
  • 3.18, Аноним (-), 14:54, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    *они
     
  • 3.19, Какаянахренразница (ok), 14:59, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что ни там курят, те кто пишут пипирку и общаются с собаками?

    Что курят кодеры, я не знаю. А про общение с собаками дело такое:
    1. dawg это слэнговое произношение слэнгового слова "док".
    2. мем с рекурсией запущен ведущим американской телепередачей Pimp My Ride (чувак на демотиваторе, забыл его имя).

     
     
  • 4.20, Genry Tomasino (?), 15:36, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    xzibit вроде.
     
  • 4.28, Stax (ok), 18:19, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно было просто дать ссылку http://lurkmore.to/Yo_dawg :)
     
  • 2.30, PnDx (ok), 18:48, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Yo, dawg" >> "Эй, чувак"
     
  • 2.35, Аноним (-), 23:08, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >написали Питон на Питоне, чтобы ты мог запускать питоновские скрипты, запуская питоновские скрипты.

    То как они всё это сделали иначе как бредом не назовёшь. Ведь есть же два адекватных примера: Java и V8, но они решили пойти своим путём...

     

  • 1.3, Аноним (-), 10:20, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    >> Новый выпуск примечателен значительным увеличением производительности, он в среднем на 10% быстрее прошлой версии PyPy

    Судя по тому что у них каждый выпуск все быстрее они уже должны обогнать ассемблер по скорости.

     
     
  • 2.10, Nuzhny (?), 11:52, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Учитывая, что написание ассемблерного кода для современных процессоров чрезвычайно сложный процесс, то не исключаю, что PyPy уже обогнал много рукописных ассемблерных алгоритмов. А numpy вообще всегда был очень быстрым. Это во-первых.

    А во-вторых, ускорение во сколько-то раз - это относительная метрика, а не абсолютная. Может быть, что речь идёт об очень маленьких порядках. То есть ускорение в 2 раза может принести выигрыш в часы для тяжёлых алгоритмов, а может и всего несколько тактов на каком-нибудь сложении нескольких чисел. Все помнят, почему Ахиллес никогда не догонит черепаху, хотя расстояние между ними сокращается каждый раз вдвое. Возможно, что всё ускорение идёт к какой-то асимптотической оценке, которую никогда не перепрыгнет.

     
     
  • 3.13, Аноним (-), 13:25, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >>не исключаю, что PyPy уже обогнал много рукописных ассемблерных алгоритмов

    Что вы курили, уважаемый? С каких пор Ассемблерный код стал медленнее, чем интерпретируемый язык?

     
     
  • 4.14, Nuzhny (?), 13:40, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сначала надо текст читать, а после комментарии писать - там нет интерпретируемого языка. Есть подмножество, которое компилируется в тот же самый бинарный код с помощью jit компилятора. Разница лишь в том, что компиляция происходит не на компьютере разработчика, а на компьютере пользователя в момент запуска программы.
     
     
  • 5.16, Аноним (-), 14:49, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    >Сначала надо текст читать, а после комментарии писать - там нет интерпретируемого языка. Есть подмножество, которое компилируется в тот же самый бинарный код с помощью jit компилятора. Разница лишь в том, что компиляция происходит не на компьютере разработчика, а на компьютере пользователя в момент запуска программы.

    Приличная у тебя солянка в голове: ни внятного сообщения, ни внятного ответа. Похоже на гуманитарии (сумбур) головного мозга.

     
     
  • 6.21, Nuzhny (?), 16:05, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Гы! Я какое-то время занимался этой же самой темой, только jit + lua. И Питон использую в повседневной жизни вместе с numpy.
    А по теме, видимо, нечего сказать тебе.
     
     
  • 7.29, Аноним (-), 18:22, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    >Гы! Я какое-то время занимался этой же самой темой, только jit + lua. И Питон использую в повседневной жизни вместе с numpy.

    так видно же по содержанию твоих сообщении что ты на python'е пишешь

    >А по теме, видимо, нечего сказать тебе.

    Не вступаю в дискуссии с гуманитариями, vb- и python-недопрограммистами, пользователями windows и продуктов apple, фанатами mono, bsd-лицензии и systemd. Лишь иногда для аудитории подмечаю бездарность коментаторов.

     
     
  • 8.31, Nuzhny (?), 18:55, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ха Ты только что вступил со мной в дискуссию из всего списка ко мне подходит т... текст свёрнут, показать
     
     
  • 9.33, Аноним (-), 20:23, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Глупый ты Это не дискуссия ... текст свёрнут, показать
     
  • 8.38, бедный буратино (ok), 03:20, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    шаблонный пафос tm шаблонная индивидуальность tm эстет-педераст tm и прост... текст свёрнут, показать
     
     
  • 9.40, Аноним (-), 04:51, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    сильно же тебя зацепило ... текст свёрнут, показать
     
     
  • 10.41, бедный буратино (ok), 05:38, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как вспомню, что аноним не общается с любителями монобейсика под bsd лицензией, ... текст свёрнут, показать
     
     
  • 11.42, Аноним (-), 08:46, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ваганыч, а ты поглупел ... текст свёрнут, показать
     
  • 2.15, Алексей (??), 14:40, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая, что Python в расчетных тестах в среднем в 20 раз медленнее C, то можно прикинуть сколько им еще надо пилить.
     
     
  • 3.23, Аноним (-), 17:17, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учитывая что сами расчёты на питоне пишут только утырки, а нормальные сводят это всё в правильгве вызовы numpy ....
     
     
  • 4.27, Аноним (-), 18:14, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >а нормальные сводят это всё в правильгве вызовы numpy
    >сводят это всё в правильгве
    >правильгве

    ясно, че

    // желание обходить стороной python только усилилось, спасибо!

     
     
  • 5.39, anonimouse (?), 03:52, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Очень хорошо! Сиди в своем уютном шарпике :)
     
     
  • 6.44, count0krsk (ok), 23:47, 08/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    И шарп, и этот ваш Питон - не нужны. Православных баша и перл хватает как для простых скриптов, так и для парсинга всего. От wi-fi точки соседа до xml-портянки с заказами от клиентов на работе.
    А если уж и писать софт, то на сях или qt на край. Что собственно и делают большинство opensource разрабов.
     

  • 1.5, Аноним (-), 11:10, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > он в среднем на 10% быстрее прошлой версии PyPy и в 6.93 раза быстрее классического CPython

    Точно в 6.93 раза на любых тестах?

     
     
  • 2.8, Будочки (?), 11:35, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Там где задействовано время компиляции. :))
     
  • 2.34, Lain_13 (ok), 21:07, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты не понимаешь значения слов «в среднем»?
    И, естественно, среднее считалось из доступных у них тестов. Если вам что-то не нравится - напишите им больше тестов.
     

  • 1.6, Аноним (-), 11:11, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а почему реализация питона на питоне доступна не для всех платформ, для которых доступен питон? может этот питон не может на питоне работать, а может работать только на своеобразной эмуляции питона? ...точнее питоноподобного интерпритатора....
     
     
  • 2.7, Andrey Mitrofanov (?), 11:21, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > а может работать только на своеобразной эмуляции питона? ...точнее питоноподобного интерпритатора....

    Догада! Он написан на RPython.

     
  • 2.9, Будочки (?), 11:36, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    точнее там от питона одно название
     
  • 2.12, ImG (?), 12:39, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код

    Машинный код

     
     
  • 3.22, фыфы (?), 16:09, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    т.е. это компилятор?
     
     
  • 4.26, Crazy Alex (ok), 17:32, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну неужели так сложно загуглить JIT?
     
  • 3.45, count0krsk (ok), 23:49, 08/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Машинный код

    Мышиный кот ;-)

     
  • 2.25, Crazy Alex (ok), 17:32, 04/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Действительно - почему волшебным образом не возникает кодогенерация для любой платформы...

    Очнись, JIT платформозависим

     
  • 2.47, Аноним (-), 10:12, 09/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    # file /usr/lib64/pypy/pypy-c
    /usr/lib64/pypy/pypy-c: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
     

  • 1.24, Аноним (-), 17:24, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Python 2.7.8 (10f1b29a2bd2, Feb 03 2015, 00:56:13)
    [PyPy 2.5.0 with MSC v.1500 32 bit] on win32
    Последняя версия Python 2.7.9, а у PyPy - 2.7.8.
     
  • 1.36, via (??), 23:40, 04/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    на своих гуевых (tkinter) приложениях, кроме более долго старта, что-то никаких плюсов по сравнению с CPython2.7 не обнаружил. А, вот, веб-аппликуха после старта ощутимо меньше жрет проц на этом PyPy2.5.
     
     
  • 2.37, Аноним (-), 02:07, 05/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А каким образом PyPy должен ускорять работы GUI'ни, которая тем более сделана на Tcl/Tk?
     

  • 1.43, Аноним (-), 23:19, 06/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Млин, зачем делать этот PyPy почему просто не написать нормальный CPython? Возможно если бы Cpython умел компилировать в нативную платформу тогда еще ладно Си написан на Си и Питон написан на Питон, но вот так вот то зачем дро@ся?
     
     
  • 2.46, count0krsk (ok), 23:51, 08/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > так вот то зачем дро@ся?

    42 ))

     
  • 2.48, Аноним (-), 10:15, 09/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Млин, зачем делать этот PyPy почему просто не написать нормальный CPython? Возможно
    > если бы Cpython умел компилировать в нативную платформу тогда еще ладно
    > Си написан на Си и Питон написан на Питон, но вот
    > так вот то зачем дро@ся?

    Почему не написать нормальный CPython - это вопрос к авторам CPython'а. А авторам PyPy видимо проще писать на питоне, поэтому он и на питоне.

    - Ваш Кэп.

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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