Представлен (http://morepypy.blogspot.ru/2015/06/pypy-260-release.html) релиз PyPy 2.6 (http://pypy.org/), реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython (http://doc.pypy.org/en/latest/coding-guide.html#id1), Restricted Python). Новый выпуск примечателен значительным увеличением производительности, он в среднем на 2% быстрее (http://speed.pypy.org/) прошлой версии PyPy и в 7 раз быстрее классического 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 в полтора-два раза.Новшества (http://doc.pypy.org/en/latest/release-2.6.0.html), добавленные в PyPy 2.5:
- До версии 1.1 обновлён модуль CFFI (https://cffi.readthedocs.org/en/latest/) (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю
ctypes (http://python.net/crew/theller/ctypes/);
- Добавлена предварительная поддержка системы статического профилирования vmprof (https://vmprof.readthedocs.org/en/latest/), которая изначально рассчитана на профилирование кода, сгенерированного JIT-компилятором;
- Проведена работа по улучшению совместимости с Python: добавлена поддержка переменной окружения PYTHONOPTIMIZE, улучшена поддержка TLS 1.1 и 1.2, в сборку для платформы Windows помимо pypy.exe включен исполняемый файл pypyw.exe, устранены проблемы (ttps://bitbucket.org/pypy/pypy/issues), выявленные в прошлом выпуске PyPy;
- Расширены возможности интегрированной математической библиотеки Numpy, в которой появилась поддержка объекта dtype (http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html), реализованного через привязку в сборщике мусора. Добавлены типы .can_cast и .min_scalar_type. Улучшена поддержка подтипов, реализованная через методы _array_interface__, __array_priority__ и __array_wrap__. Улучшена поддержка опций ndarray.flags;- Продолжена работа по оптимизации JIT-компилятора, проведён внутренний рефакторинг и чистка кода, связанного с работой JIT. Увеличена производительность ввода/вывода в модулях zlib и bz2.
Достигнуто семикратное опережение CPython в тестах производительности.
Основные особенности PyPy:
- Поддержка бесстекового (Stackless) режима работы, позволяющего использовать модель actor (erlang-подобное программирование с массой микропотоков и отсыланием сигналов друг другу;
- Реализация режима изолированного выполнения кода, к которому нет доверия. От sandbox в CPython данный режим отличается полной поддержкой всех возможностей языка без выделения unsafe-функций.- Автоматическая генерация и полная прозрачность встроенного JIT-компилятора;
- PyPy успешно проходит стандартный тестовый пакет Python и поддерживает (http://pypy.org/compat.html) большинство из стандартных 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 (http://www.opennet.me/opennews/art.shtml?num=40050);
- Вариант PyPy с поддержкой распараллеливания на многоядерных системах развивается в рамках проекта PyPy-STM (http://www.opennet.me/opennews/art.shtml?num=40150) (PyPy Software Transactional Memory).
URL: http://morepypy.blogspot.ru/2015/06/pypy-260-release.html
Новость: http://www.opennet.me/opennews/art.shtml?num=42339
Питон ради питона
> Питон ради питонаСи ради Си? Плюсы ради плюсов?
Анонимам опеннета не угодишь.
Си, С++ - специализированные языки. Питон же изначально создавался ради идеологии, которая кстати хорошо описана здесь: https://ru.wikipedia.org/wiki/Python
> Красивое лучше, чем уродливое.
> Явное лучше, чем неявное.
> Простое лучше, чем сложное.
> Сложное лучше, чем запутанное.
> ...Реализация питона на питоне - это, так сказать, кульминация.
чтобы закомментировать IF сдвигать целый абзац кода?красиво, явно, просто и ни разу незапутанно :)
> чтобы закомментировать IF сдвигать целый абзац кода?
> красиво, явно, просто и ни разу незапутанно :)Ну, неосиляторы M-x comment-region должны страдать, не? =)
Таки да. Надо бы создать PEP на комментарий действующий до конца конструкции, перед которой поставлен
> чтобы закомментировать IF сдвигать целый абзац кода?Что мешает использовать """?
> Реализация питона на питоне - это, так сказать, кульминация.export LANG=py_PY? :)
>PyPyА как он произносится? ПайПай? ПиПи? Пэ-Игрек-Пэ-Игрек?
https://www.youtube.com/watch?v=kqQ_YyYukjo
Питон Питоныч
ПаиПаи на японском - сиськи
Вот и отлично! Почти так ведь и произносится (ПайПай).
Пупу
парадокс, но с каждым разом становится все интересней
На 2 процента быстрее! На 6мм тоньше!
И вообще, когда уже наконец запилят PyPyPy.
Да чё там мелочиться, сразу (py).
> общее потребление памяти в сложных и длительно работающих процессах
> (например, при трансляции PyPy силами самого PyPy) превышает потребление
> CPython в полтора-два раза.Зато на 2% быстрее. Уууух, убунта теперь оживёт!
Не, ну серьезно, лучше бы тогда занялись обучением школьников написанию ускоряющих костылей, потому что текущая жручесть питоновских приложений никуда не годится. А по хорошему давно пора прикрыть этот балаган.
На 2% быстрее предыдущей версии. По расходу памяти все тоже самое, что в PyPy 2.5
> Зато на 2% быстрее. Уууух, убунта теперь оживёт!Кактус вкушаем? =)
> Не, ну серьезно, лучше бы тогда занялись обучением школьников написанию ускоряющих костылей,
Гипс, картон, папье маше и пластик -- для макетов самое то. Особо уп0ротые, правда, начинают из этих материалов строить дома. Естественно, получается не очень.
Непризнаные эксперты, с высоты своих диванов, делают соответствующие выводы: макеты -- ненужная фЪгня!> потому что текущая жручесть питоновских приложений никуда не годится. А по
> хорошему давно пора прикрыть этот балаган.Будь мужиком ...
почему все убунта да убунта, вон недавно федора DNF выкатила - тоже питон
Yum: Python
DNF: Python
Portage: Python
APT: C, C++, Python
PiSi: PythonЭто в каком-то роде популярно...
Это в прямом роде непопулярно у нескольких козлов местного разлива. Во всём остальном мире очень даже популярно в своей области применимости, о чем, кстати, ярко свидетельствует вышеперечисленное.
После появления GO все эти питоны/перлы/пых-пы-хи побежали на свалку истории.
Ну ведь нет же :). Только в вашем воспалённом сознании. Хватит слушать голоса из розеток и разговаривать с пауками.
Go вообще ни как не пересекается со скриптовыми языками.
GO просто отправляет их на свалку, с простым деплоем, быстрой компиляцией и продуктивной разработкой.
Ну ка поподробнее, про простоту? покажите-ка мне крупный проект на Go? Даже сам гугл его только как вспомогательный язык в своей инфраструктуре использует, не больше.
> Ну ка поподробнее, про простоту?По подробней тебе гайдлайн расскажет, осилить го гораздо быстрее чем питон. Сам язык получился гораздо проще гвидобейсика.
> покажите-ка мне крупный проект на Go?Дай критерии крупного проекта, может докер, может gogs или может influxdb
> Даже сам гугл его только как вспомогательный язык в своей инфраструктуре использует, не больше.А мы наверное из один из топ менеджеров по разработке гугла? И естественно в курсе разработок?
Gogs, кстати, похоже загнулся https://github.com/gogits/gogs/commits/master - основной разработчик пропал куда-то. Жаль, подающий надежды сервис был. Думал на основе gogs и drone (https://github.com/drone/drone) поднять сервис, на замену гитлабу.
Если посмотреть по проектам на Golang, на гитхабе, такие как мартини и т.п, и посмотреть кто сейчас, из комиттеров занимается, получается так:У многих проектов, нет большой активности, последние коммиты где-то были месяц/два и больше назад. Многие коммитеры зачастую продолжают работать в проектах не на Golang.
Проходит ажиотаж связанный с Go, куча оставленных проектов... Смотря на это начинать какой-либо проект на Go даже страшно.
Кстати, расскажите пожалуйста с чем Вы в Go работаете с сериализацией и манипуляцией xml и json. Чтобы максимум удобства, но и не тормозное?
http://golang.org/pkg/encoding/
http://golang.org/pkg/encoding/xml/
http://golang.org/pkg/encoding/json/
> GO просто отправляет их на свалку, с простым деплоем, быстрой компиляцией и
> продуктивной разработкой.Вы ошиблись дверью, зданием и страной -- совет директоров гуголя немного в другом месте.
Полагаю в гугле питон уже давно отправлен на свалку плюсами и явой.
Вы это серьезно?
Сколько оперативы нужно, чтоб собрать эту версию?
Смотря под какую архитектуру, в целом много.Есть и всё уже собранное, готовое:
https://github.com/squeaky-pl/portable-pypy#portable-pypy-di...
не больше, чем для сборки современных модных броузеров
> не больше, чем для сборки современных модных броузеровКак человер собирающий модные браузеры скажу что где то в 3 раза больше чем для модных браузеров
> Как человер собирающий модные браузеры скажу что где то в 3 раза
> больше чем для модных браузеровНу, в три раза больше Xombrero или surfa не так уж и критично :)
А вообще, из доков:
> Even when using PyPy to build PyPy, translation is time-consuming – 30 minutes on a fast machine – and
> RAM-hungry. You will need at least 2 GB of memory on a 32-bit machine and 4GB on a 64-bit machine.
https://github.com/chtd/psycopg2cffiКто-нибудь использует это вместе с PYPY, с постгресом в продакшене?
В филисофии питона нет понятий потребления памяти и скорости выполнения. Эта абстрактная идеология не для продакшина, а для самой идеологии. А те, кто используют питон в продакшине - извращенцы этой идеологии.
Откуда столько ненависти к Python?Вполне себе нормальный язык, читабельный, с "батарейками". Крупные конторы навроде гугла. Яндекса, Амазона - используют и радуются. В продакшене и на хайлоаде вполне себе живёт.
Научные вычисления - моё почтение, тоже используется. Сайтики делать - опять же пожалуйста.
> Крупные конторы навроде гугла. Яндекса, Амазона - используют и радуются.Использовали и до сих пор используют для старых проектов так и для некоторых новых, но доля питона сокращается.
> но доля питона сокращаетсяИнтересно, на каких идиотов вы рассчитываете, когда с упертостью достойной золотого барана постите здесь свои сказочки для недоразвитых?
Если он такой весь классный, то почему в убунте на него не переехали?
Сейчас питон в убунте жрет 700 метров оперативки, будет 1000, а быстрее все равно не станет. От питона надо наоборот уходить.
> Сейчас питон в убунте жрет 700 метров оперативки,Сейчас глянул: питон на распе, в качестве простенького хттпд, кушает аж 11Мб!
Вангую, что для убунты нужен не (только) другой инструмент разработки, но и полноценная операция по пересадке и выпрямлению рук "разработчиков".
> От питона надо наоборот уходить.
Флаг c барабаном нужны, иначе религия не позволяет? =)
> наоборот уходить- это приходить пятясь?
Геббельс тихо завидует тебе с того света.
Может кто подскажет рабочую версию lxml для работы с PYPY2.6 ?Есть эта, но она давно не обновлялась, а при компиляции есть проблемы:
https://github.com/amauryfa/lxml/tree/cffi
КМК, массовое применение PYPY останавливают только отсутствие рабочих, из коробки C-шных Pillow, lxml и PyCrypto, остальное необходимое должно jit-тся и вполне быстро работать.
> КМК, массовое применение PYPY останавливают только отсутствие рабочих, из коробки C-шных
> Pillow, lxml и PyCrypto, остальное необходимое должно jit-тся и вполне быстро
> работать.Нет, просто большинство серверов упирается во что угодно только не в cpu на бэке. PyPy интересен на хадупчике или в науке.
На PYPY время выполнения меньше, особенно если есть существенный питон код.
Но сферический jit, без сопутствующих библиотек, сразу оттягивает всё время на поиск решений работы с необходимыми С-либами когда проект усложняется, разрастается.