LINUX.ORG.RU

PyPy 1.8

 , , ,


0

2

Вышла новая версия интерпретатора PyPy, который написан с использованием RPython-подмножества Python со статической типизацией. В рамках данного проекта реализован JIT компилятор. Скорость его работы на 10% выше, чем у PyPy 1.7 и в 5.2 раза выше, чем у классического CPython. Было выполнено много работ для JIT на платформе ARM. Однако, в бочке меда есть и своя ложка дегтя: у PyPy более высокое потребление памяти, особенно на длительно работающих процессах. Особенности новой версии:

  • Добавлена специализация списков. Это позволяет уменьшить расход памяти для списков с элементами одного типа.
  • Готов бекенд для платформы ARMv7.
  • Улучшена совместимость с CPython.
  • Обновление стандартной библиотеки с версии 2.7.1 до 2.7.2.
  • Продолжена работа над поддержкой математической библиотеки Numpy, которая происходит в отдельной ветке numpypy. В версию 1.8 добавлены функции для работы с многомерными массивами, различные размеры dtype, добавлено множество новых функций. Добавлена возможность работать с именем numpy, однако, перед тем, как импортировать numpy все равно надо написать import numpypy.
  • Добавлены JIT хуки. Это позволяет писать функции, которые запускаются JIT компилятором на фазе оптимизации или окончательной трансляции кода в машинные инструкции.


Особенности PyPy:

  • Он может бесшовно заменить Python 2.7 и 2.6.
  • Поддерживаются ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet.
  • В PyPy имеется бекенд для генерации байт-кода для LLVM, NET/CLI, Java.
  • Поддерживается обмен данными между микропотоками в рамках одного потока, выделенного операционной системой.
  • Поддерживается «песочница» для не доверенного кода с полными возможностями без выделения небезопасных функций, в отличие от CPython.
  • Поддерживаются архитектуры: x86 (IA-32), x86_64 и ARMv7. Ведется работа над поддержкой PowerPC (PPC64).
  • PyPy используется для тестирования новых концепций и возможностей языка Python.

Сайт проекта

Страница загрузок

Тесты скорости PyPy

Описание идеи, лежащей в основе PyPy

>>> Подробности

★★★★★

Проверено: post-factum ()

Ответ на: комментарий от malices_gossips

Ты все еще веришь что код для всех случаев может быть быстрее кода для одного?

zz ★★★★ ()
Ответ на: комментарий от Deleted

на многопоточных приложениях даже Jython и JRuby (которые в общем случае медленны) ведут себя лучше, чем их нежабные собратья

Памяти жрут побольше?

tailgunner ★★★★★ ()
Ответ на: комментарий от Deleted

при этом не встают раком от многопоточности.

А, всё еще эта придуманная проблема...

tailgunner ★★★★★ ()
Ответ на: комментарий от malices_gossips

Ты если уж не в курсе о чём речь, то и не поправляй. А то такая глупость получается.
В прошлый раз они обогнали именно С, но только в одном очень уж спорном кейсе.

mine ()
Ответ на: комментарий от mine

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

Кейс не довольно спорный, там обработка форматной строки. Фишка заключалась в том, что JIT сгенерировал более оптимальный код именно для заданной строки, тогда как в сях vsnprintf() или как там его, универсальный и компилится раз на всех.

shimon ★★★★★ ()
Ответ на: комментарий от seed_stil

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

glibych ★★ ()
Ответ на: комментарий от mine

А мужики-то и не знали! Спасибо, кэп!

Мужики - знали. А ты - протупил, сделав идиотское сравнение.

ForwardToMars ()
Ответ на: комментарий от shimon

Ну вот я и говорю спорный случай: сравнивать скорость работы универсальной функции и оптимизированной для конкретного вызова. Оно как-то слишком разное, чтобы сравнивать. Это как гонки между мотоциклом машиной. Вроде по составу похожи, а на деле совершенно разные.

mine ()
Ответ на: комментарий от mine

Это одинаковые функции с точки зрения программиста, если у тебя бакенд который магически это делает быстрее для частных случаев - тем лучше.

zz ★★★★ ()

Продолжена работа над поддержкой математической библиотеки Numpy

хорошая новость, так и до поддержки biopython недалеко

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от mine

Ну вот я и говорю спорный случай: сравнивать скорость работы универсальной функции и оптимизированной для конкретного вызова.

Так фишка же в том, что оно оптимизирует без тебя и за тебя. Ловкость рук и никакого мошенничества. И это прекрасно.

shimon ★★★★★ ()
Ответ на: комментарий от Vudod

Как только numpy ... запилят

До запила numpy осталось $18671 задонейтить, 68% средств уже получены.
Жалких 187 человек по $100.

science ★★☆ ()

перед тем, как импортировать numpy _ все равно надо написать

Вот ещё ошибка

anonymous ()

Хорошая новость. Удачи проекту!

crono ()
Ответ на: комментарий от olegsov

Не его а «ласточку»(Unladen Swallow),которая так и не взлетела

pylin ★★★★★ ()

PyPy - это двойной Пу?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.