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-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor