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 (ok), 12:02, 11/03/2016 [^] [ответить]    [к модератору]
  • –1 +/
    Все это хорошо, но вот бы если занялись лишением недостатков реализации самого CPython, это было б значительно лучше.
     
  • 2.24, Анонимко (?), 13:07, 11/03/2016 [^] [ответить]    [к модератору]
  • +1 +/
    Просто питон работает быстрее, если написан на питоне.
     
     
  • 3.25, Аноним (-), 13:13, 11/03/2016 [^] [ответить]    [к модератору]
  • +/
    Ложь, если PyPy и быстрее хоть где-то чем CPython то только за счёт использования JIT, который в 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 (ok), 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, который написан на C?
     
     
  • 4.8, Аноним (-), 10:29, 11/03/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    Потому что разное устройство пакетной базы, не?
     
  • 3.23, RazrFalcon (ok), 13:04, 11/03/2016 [^] [ответить]    [к модератору]  
  • +/
    Переход с HDD на SSD не дает ощутимого прироста. В portage тормозит далеко не только io.
     
     
  • 4.29, Аноним (-), 13:59, 11/03/2016 [^] [ответить]    [к модератору]  
  • +/
    Дает. Повторный запуск emerge всегда в разы быстрее, пока кэш ФС в RAM. Если, конечно, у тебя RAM не 512 мб.
     
     
  • 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 +/
    При использовании питона накладные расходы увеличиваются еще и благодаря питону. Это даже до редхата с DNF дошло, не прошло и 20 лет.
     
  • 5.69, . (?), 19:27, 12/03/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    Подсказка двоешникам Весь I O и окрытие закрытие файловых дескрипторов в пито... весь текст скрыт [показать]
     
  • 2.34, Аноним (-), 15:24, 11/03/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Попробуй paludis
     
  • 2.83, Aleks Revo (ok), 23:40, 13/03/2016 [^] [ответить]    [к модератору]  
  • +/
    Не перестаёт, если интересуют экспериментальные данные ))
    Как верно заметили - узкое место hdd. C PyPy диск пригружается эффективней и всё на этом.
     
  • 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-ядерного сервачка вполне себе хватит на 2-3 уровня вложений!
     
  • 1.6, Аноним (-), 10:19, 11/03/2016 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    Что-то мне подсказывает что если добавить в классическую реализацию Python на яз... весь текст скрыт [показать]
     
     
  • 2.10, kai3341 (ok), 10:31, 11/03/2016 [^] [ответить]     [к модератору]  
  • +/
    Верно мыслите Но будет ещё быстрее, если алгоритм будет проработан и несколько ... весь текст скрыт [показать]
     
  • 2.17, llolik (ok), 11:55, 11/03/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Над этим уже работают
    https://github.com/dropbox/pyston
    https://www.opennet.ru/opennews/art.shtml?num=39494
     
  • 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, а не под стандартным интерпретатором.
    Нужно так
    $ time PyPy ./test.py
     
     
  • 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 (ok), 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 [^] [ответить]    [к модератору]  
  • +/
    Заменить цикл единственным вычислением - такой же примитивный и пошлый троллинг можно встретить разве что от гражданина под ником myhand.
     
     
  • 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 +/
    > Чей-то у вас компутер допотопный o_O

    Теперь понятно почему питон не тормозит. Надо оказывается сервер 32-ядерный брать, с 128 гиг оперативки.

     
     
  • 10.64, Аноним (-), 14:27, 12/03/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    > Теперь понятно почему питон не тормозит. Надо оказывается сервер 32-ядерный брать, с
    > 128 гиг оперативки.

    Ну да, если не осилил подумать головой – "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 +/
    > Бонусом,
    > 4) Не совместимо с существующим кодом на питоне, в лучших традициях.

    Новость не читай, сразу в лужу отвечай?

    Пруф или GTFO.

     
  • 2.30, Нимано (?), 14:02, 11/03/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    Ага, главное вставить про Си ведь знать, что PyPy написано b RPython b h... весь текст скрыт [показать]
     
  • 2.33, Crazy Alex (ok), 14:54, 11/03/2016 [^] [ответить]    [к модератору]  
  • +/
    Вот только писать сложную алгоритмику на сях - удовольствие ниже среднего, а отлаживать - тем более.
     
     ....нить скрыта, показать (39)

  • 1.9, privation (?), 10:30, 11/03/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    за erlang-подобия - зачетно ! захотелось попробовать ...
     
  • 1.14, KaE (ok), 10:57, 11/03/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Хочу реализацию JavaScript на JavaScript - JaJa!
     
     
  • 2.15, имя (?), 11:21, 11/03/2016 [^] [ответить]    [к модератору]  
  • +2 +/
    https://github.com/jterrace/js.js/
     
  • 1.32, neon1ks (ok), 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, Аноним (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 (ok), 23:59, 13/03/2016 [^] [ответить]    [к модератору]  
  • +/
    > А на PyPy можно запускать ещё один PyPy?

    Каким образом?
    PyPy написан на RPython, а интерпретирует обычный Python - это разные языки.

     
  • 1.55, Аноним (-), 04:19, 12/03/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Обьясните мне глупому что такое JIT и в чем отличие от текущего Python Comile (.pyc и .pyo)? Если заменить все .py файлы на .pyc, то это можно назвать JIT интерпритатором CPython?
     
     
  • 2.68, Аноним (-), 16:40, 12/03/2016 [^] [ответить]     [к модератору]  
  • +/
    Для этого надо понять разницу между машинным кодом и какими-то там опкодами чего... весь текст скрыт [показать]
     

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


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