The OpenNET Project / Index page

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

11.03.2016 09:10  Выпуск PyPy 5.0, реализации Python, написанной на языке Python

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

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

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

  • Продолжена работа по оптимизации использования метаданных в JIT-компиляторе. Разогрев JIT (warmup) теперь выполнятся на 30% быстрее, потребляя на 30% меньше памяти;
  • Обновлён C-API (cpyext). Новый cpyext отличается значительным увеличением производительности и упрощением взаимодействия между объектами на языке Си и объектами на уровне интерпретатора PyPy. Реализован более стабильный метод создания объектов PyObjects в cpyext. В результате, новый cpyext позволил добиться успешного прохождения всех тестов библиотекой lxml, собранной со всеми компонентами cython;
  • Система профилирования vmprof адаптирована для работы на различных платформах. Кроме Linux, vmprof теперь может применяться в OS X и Windows, поддерживается работа как с PyPy, так и с CPython.
  • До версии 1.5.2 обновлён модуль CFFI (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes. В новой версии появилась возможность встраивания PyPy или CPython в программы на языке Си;
  • По аналогии с CPython по умолчанию в операциях с файловой системой теперь используется кодировка ASCII;
  • Для создания тестов задействована библиотека hypothesis;
  • Расширены возможности интегрированной математической библиотеки Numpy, в которой добавлена возможность индексированной фильтрации двоичных массивов ndarray и частично реализована поддержка функции partition();
  • Проведены многочисленные оптимизации: ускорены операции соединения строк, оптимизирован поиск глобальных переменных, в 15 раз ускорены операции распаковки чисел с типами float и double, на 50% ускорена распаковка целочисленных типов, оптимизирован поиск в mapdic, значительно увеличена производительность re.sub().



Основные особенности 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: Разработка Python переносится на Git и GitHub
  3. OpenNews: Выпуск Nuitka 0.5.17, компилятора для языка Python
  4. OpenNews: Выпуск Pyston 0.4, реализации языка Python с JIT-компилятором
  5. OpenNews: Увидел свет язык программирования Python 3.5.0
  6. OpenNews: Выпуск PyPy 4.0, реализации Python, написанной на языке Python
Лицензия: CC-BY
Тип: Программы
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Аноним, 09:28, 11/03/2016 [ответить] [смотреть все]    [к модератору]
  • –3 +/
    Реализации Python, написанной на Python и питоном погоняя :D
     
     
  • 2.19, Anon999, 12:02, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]
  • –1 +/
    Все это хорошо, но вот бы если занялись лишением недостатков реализации самого C... весь текст скрыт [показать] [показать ветку]
     
  • 2.24, Анонимко, 13:07, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Просто питон работает быстрее, если написан на питоне.
     
     
  • 3.25, Аноним, 13:13, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ложь, если PyPy и быстрее хоть где-то чем CPython то только за счёт использовани... весь текст скрыт [показать]
     
     
  • 4.28, ghost, 13:51, 11/03/2016 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Если бы у бабушки был .у., она была бы дедушкой.
     
  • 3.26, Аноним, 13:16, 11/03/2016 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    и как истинный питон не совместим с другими питонами.
     
     
  • 4.40, Аноним, 17:19, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Как истинный аноним 8211 высказал свое мнение, не утруждая себя знанием предм... весь текст скрыт [показать]
     
  • 2.41, Нимано, 17:23, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Читать не только заголовок новости не пробовали Счастливчик 8211 сколько в... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, RazrFalcon, 09:46, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Может хоть с ним portage перестанет тормозить.
     
     
  • 2.3, Аноним, 09:50, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    Ты, наверно, очень невнимательный гентушник, раз не заметил что тормозит portage... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, Аноним, 10:21, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Почему же тогда на точно таком же жёстком диске не тормозит apt из Debian, котор... весь текст скрыт [показать]
     
     
  • 4.8, Аноним, 10:29, 11/03/2016 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Потому что разное устройство пакетной базы, не?
     
  • 3.23, RazrFalcon, 13:04, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Переход с HDD на SSD не дает ощутимого прироста В portage тормозит далеко не то... весь текст скрыт [показать]
     
     
  • 4.29, Аноним, 13:59, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Дает Повторный запуск emerge всегда в разы быстрее, пока кэш ФС в RAM Если, ко... весь текст скрыт [показать]
     
     
  • 5.31, Нимано, 14:49, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Я так понимаю, тут или особенный, уличный кэш для SSD или же при использовании H... весь текст скрыт [показать]
     
     
  • 6.38, Аноним, 17:01, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Как я уже сказал, зависит от размера кэша ФС в памяти Если памяти мало, то сбра... весь текст скрыт [показать]
     
  • 4.39, Аноним, 17:04, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    I O с кэшем в памяти - тоже I O И тоже есть накладные расходы на открытие закры... весь текст скрыт [показать]
     
     
  • 5.58, Аноним, 12:46, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    При использовании питона накладные расходы увеличиваются еще и благодаря питону ... весь текст скрыт [показать]
     
  • 5.69, ., 19:27, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Подсказка двоешникам Весь I O и окрытие закрытие файловых дескрипторов в пито... весь текст скрыт [показать]
     
  • 2.34, Аноним, 15:24, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –1 +/
    Попробуй paludis
     
  • 2.83, Aleks Revo, 23:40, 13/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Не перестаёт, если интересуют экспериментальные данные Как верно заметили - у... весь текст скрыт [показать] [показать ветку]
     
  • 1.4, Аноним, 09:53, 11/03/2016 [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    нужно больше памяти ... весь текст скрыт [показать]
     
  • 1.5, Неанонимный Аноним, 10:06, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Важнейший вопрос: выполняется ли pypy на pypy? (pypypypy)
    И сколько уровней вложенности потянет
     
     
  • 2.11, Аноним, 10:41, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –3 +/
    Если не умеет в многоядерность, то не потянет Если умеет - 32-ядерного сервачка... весь текст скрыт [показать] [показать ветку]
     
  • 1.6, Аноним, 10:19, 11/03/2016 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Что-то мне подсказывает что если добавить в классическую реализацию Python на яз... весь текст скрыт [показать]
     
     
  • 2.10, kai3341, 10:31, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Верно мыслите Но будет ещё быстрее, если алгоритм будет проработан и несколько ... весь текст скрыт [показать] [показать ветку]
     
  • 2.17, llolik, 11:55, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Над этим уже работают https github com dropbox pyston http www opennet ru op... весь текст скрыт [показать] [показать ветку]
     
  • 2.18, Аноним, 11:56, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –1 +/
    Быстрее это вряд ли. Скорость и так сишная в некоторых случая. Куда быстрее?
     
     
  • 3.21, Аноним, 12:09, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Сишная говорите в некоторых случаях Что же, охотно верю при условии что число э... весь текст скрыт [показать]
     
     
  • 4.22, Аноним, 13:03, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Вот некоторый случай На LORе как-то выкладывали пример с вычислением синуса в ц... весь текст скрыт [показать]
     
     
  • 5.35, Аноним, 16:26, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Ваш пример time python test py 0 782010319461 real 0m13 458s user 0m12 687s s... весь текст скрыт [показать]
     
     
  • 6.36, Аноним, 16:44, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вы читать умеете Под PyPy, а не под стандартным интерпретатором Нужно так t... весь текст скрыт [показать]
     
     
  • 7.43, Аноним, 18:02, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    С PyPy действительно на одном уровне с C time pypy test py 0 782010319461 re... весь текст скрыт [показать]
     
     
  • 8.46, Аноним, 18:37, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    В новости под которой мы сейчас пишем последняя строка как бы заранее отвечает н... весь текст скрыт [показать]
     
     
  • 9.59, Аноним, 12:55, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Так он даже без openmp продул Это человек еще флаги оптимизации не показал А т... весь текст скрыт [показать]
     
     
  • 10.63, Аноним, 14:25, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну-ка ну-ка разгон в пару раз того кода, c помощью флагов 8211 в студи... весь текст скрыт [показать]
     
     
  • 11.72, Нимано, 15:24, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Н-да Классическое А вдоль лyж анонимы на дивaнах сидят И тишина Вообще-то ... весь текст скрыт [показать]
     
     
  • 12.73, Аноним, 18:00, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Трое суток флаги гуглил Сразу видно эксперта У pypy кстати тоже флаги есть Ко... весь текст скрыт [показать]
     
     
  • 13.74, Нимано, 18:58, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да-да, Анонимному Эксперту ведь кто-то активно мешал смешать питонщиков с грязь... весь текст скрыт [показать]
     
     
  • 14.76, myhand, 19:24, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Шо у вас такая болезнь про хаброшколие У них это рефлекс, их как собак Павлова... весь текст скрыт [показать]
     
     
  • 15.78, Аноним, 20:38, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Та не, просто прикольно - ничего, ничего, потом отвечает типа аноним, типа один... весь текст скрыт [показать]
     
  • 14.77, Аноним, 20:19, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Какой-то бессвязный бред Попробую вам помочь разобраться До того как другой А... весь текст скрыт [показать]
     
     
  • 15.79, Аноним, 21:14, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Да-да, только Вы, Истинный Аноним, ведаете ху из ху А про то, что можно, как ... весь текст скрыт [показать]
     
     
  • 16.80, Аноним, 21:28, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Опять какой-то не адекват По теме - вам лечится надо, или хотя бы следить за со... весь текст скрыт [показать]
     
     
  • 17.81, Аноним, 21:47, 13/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да не расстраиваетесь вы так Переход на личности и тонкие намеки вместо аргум... весь текст скрыт [показать]
     
  • 11.85, Аноним, 00:10, 14/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Легко Собери LZ4 с -O0 и -O3, поудивляйся разнице Это про цирк где питонист по... весь текст скрыт [показать]
     
     
  • 12.88, Аноним, 01:35, 14/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Вы, наверное, автор LZ4, раз его каждый раз в пример ставите А автограф можно ... весь текст скрыт [показать]
     
  • 10.65, Аноним, 14:37, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Разница в рамках погрешности, а если добавить к этому холодный старт PyPy то уже... весь текст скрыт [показать]
     
     
  • 11.86, Аноним, 00:15, 14/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    А почему хитрить то Вон image magic хитрит в дефолтной сборке в почти всех ди... весь текст скрыт [показать]
     
  • 8.51, Нимано, 20:31, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Какое Сам скрипт не транслируется в Си, а то что JIT как бы на Си , особо не в... весь текст скрыт [показать]
     
     
  • 9.54, Аноним, 04:12, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Заменить цикл единственным вычислением - такой же примитивный и пошлый троллинг ... весь текст скрыт [показать]
     
     
  • 10.61, Аноним, 13:00, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Так при честном сравнении питон продувает, приходится жульничать А если еще и п... весь текст скрыт [показать]
     
     
  • 11.66, Нимано, 15:04, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А где Уважаемый Эксперт честное сравнение увидел В Си-коде аноним использует ... весь текст скрыт [показать]
     
     
  • 12.87, Аноним, 00:48, 14/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Судя по тому как yum dnf portages работают - реалистичная аппроксимация Надуван... весь текст скрыт [показать]
     
     
  • 13.89, Аноним, 02:31, 14/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Не знаю, так как не использую А причем здесь вообще эта отсылка Я так понимаю,... весь текст скрыт [показать]
     
  • 9.60, Аноним, 12:58, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Теперь понятно почему питон не тормозит Надо оказывается сервер 32-ядерный брат... весь текст скрыт [показать]
     
     
  • 10.64, Аноним, 14:27, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ну да, если не осилил подумать головой 8211 throw hardware at it ... весь текст скрыт [показать]
     
  • 6.37, Нимано, 16:49, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Неа code gcc49 test c -lm time a out 0 782010319460 a out 23,89s u... весь текст скрыт [показать]
     
     
  • 7.44, Аноним, 18:08, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Из вашего же комментария ниже Отсюда и скорость одинаковая, вот только этот при... весь текст скрыт [показать]
     
     
  • 8.50, Нимано, 20:21, 11/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Скорость чего Генерирования нативного кода или скорость выполнения этого самого... весь текст скрыт [показать]
     
     
  • 9.62, Anonimous Cowardus, 13:05, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    JIT 1 Требует дополнительного времени на генерацию кода 2 В памяти будет вис... весь текст скрыт [показать]
     
     
  • 10.70, Аноним, 20:22, 12/03/2016 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Новость не читай, сразу в лужу отвечай Пруф или GTFO ... весь текст скрыт [показать]
     
  • 2.30, Нимано, 14:02, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Ага, главное вставить про Си ведь знать, что PyPy написано b RPython b h... весь текст скрыт [показать] [показать ветку]
     
  • 2.33, Crazy Alex, 14:54, 11/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Вот только писать сложную алгоритмику на сях - удовольствие ниже среднего, а отл... весь текст скрыт [показать] [показать ветку]
     
  • 1.9, privation, 10:30, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +/
    за erlang-подобия - зачетно ! захотелось попробовать ...
     
  • 1.14, KaE, 10:57, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +/
    Хочу реализацию JavaScript на JavaScript - JaJa!
     
  • 1.32, neon1ks, 14:49, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +/
    > Разогрев JIT (warmup) теперь выполнятся на 30% быстрее, потребляя на 30% меньше памяти;

    А долго надо разогревать?)

     
     
  • 2.56, Аноним, 07:01, 12/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Пока не встанет
     
  • 2.67, Вы забыли заполнить поле Name, 16:38, 12/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > А долго надо разогревать?)

    Пару минут, если он теплый и ламповый.

     
  • 1.49, Аноним, 19:05, 11/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    numpy для py3k до сих пор не работает?
     
     
  • 2.71, ., 00:02, 13/03/2016 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –1 +/
    Тебя нае^манули :) https://pypi.python.org/pypi/numpy
     
  • 1.53, doberman, 01:06, 12/03/2016 [ответить] [смотреть все]    [к модератору]  
  • +/
    А на PyPy можно запускать ещё один PyPy?
     
     
  • 2.84, Aleks Revo, 23:59, 13/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Каким образом PyPy написан на RPython, а интерпретирует обычный Python - это р... весь текст скрыт [показать] [показать ветку]
     
  • 1.55, Аноним, 04:19, 12/03/2016 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Обьясните мне глупому что такое JIT и в чем отличие от текущего Python Comile ... весь текст скрыт [показать]
     
     
  • 2.68, Аноним, 16:40, 12/03/2016 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Для этого надо понять разницу между машинным кодом и какими-то там опкодами чего... весь текст скрыт [показать] [показать ветку]
     

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


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