PyPy и CPython: планируется ли значительное повышение производительности? - PullRequest
0 голосов
/ 30 марта 2012

Хотя я знаю, что проекты, обещающие значительное увеличение скорости, могут привести к сбоям, я не вижу особого пути для ускорения CPython и / или PyPy.

Планируется ли что-нибудь, что сулит огромный прирост скорости для основного интерпретатора (например, - with-computed-gotos ) в любом из них? Как насчет их стандартных библиотек (например, Десятичный в C , IO в C )?

Я знаю, HotPy (2) имеет план плана по ускорению CPython, но это звучит как проект с одним человеком без особой тяги в ядре CPython.

PyPy имеет некоторую информацию о том, где производительность невелика, но я не могу найти больших целей для ускорения в документах.

Итак, существуют ли известные цели, которые могут значительно повысить производительность для реализаций Python?

Ответы [ 3 ]

9 голосов
/ 30 марта 2012

Я отвечу на часть о PyPy. Я не могу говорить за CPython, но я думаю, что есть улучшения производительности, над которыми работаем (хотя не цитируйте меня об этом).

Нет плана проекта, так как он действительно не работает таким образом. Все основные части (например, «JIT» или «Сборка мусора») по существу выполнены, однако это вовсе не означает, что все происходит быстро. Определенно, есть вещи, которые работают медленно, и мы, как правило, совершенствуемся в каждом конкретном случае - отправьте отчет об ошибке, если считаете, что что-то слишком медленное. У меня довольно много улучшений производительности на моей пластине, которые определенно помогли бы скрутить, но я понятия не имею о других.

Большие вещи, над которыми работают, о которых стоит упомянуть:

  • Улучшенные кадры, которые должны помочь рекурсии и вызовам функций, которые не являются встроенными (например, которые содержат циклы)

  • Лучшая реализация строк для различных видов использования, таких как конкатенация, нарезка и т. Д.

  • Ускоренная трассировка

  • Более компактные кортежи и объекты, сохраняющие развернутые результаты

Могу ли я пообещать, когда и как это ускорит процесс? Абсолютно нет, но в среднем мы получаем 10-30% улучшений скорости от выпуска к выпуску, что обычно каждые 4 месяца или около того, так что я думаю, что некоторые вещи будут работать быстрее, но без вас, давая мне хрустальный шар или машина времени, я вам точно не скажу.

Ура, fijal

3 голосов
/ 30 марта 2012

Ваши комментарии опровергают много путаницы ...
PyPy и Python в настоящее время имеют очень разные возможности производительности.
Pypy в настоящее время более чем в 5 раз быстрее, чем CPython в среднем.
HotPy не имеет ничего общего с CPython. Это проект с одним человеком и совершенно новая виртуальная машина (еще не выпущенная, поэтому я не могу ничего сказать о ее производительности).

В данный момент в проекте PyPy много активности, и они улучшают его день ото дня.
На очень продвинутой стадии разработки есть маленький порт, они улучшают ctypes, совместимость с Cython, и скоро будет полная реализация Python3.

Я считаю, что PyPy в настоящее время находится в паре с движком V8 JavaScript и аналогичными проектами в плане производительности.
Если вам нужны скорость и Python, обратите внимание на этот проект.

2 голосов
/ 02 апреля 2012

Ответ таков: PyPy - это план по ускорению CPython. PyPy стремится быть чрезвычайно совместимым интерпретатором Python, который высоко оптимизирован. Проект собрал вместе все тесты, которые они могли найти, и запускает их все для каждой сборки pypy, чтобы гарантировать снижение производительности. Проверьте это: http://speed.pypy.org/

Я считаю, что к тому времени, когда производительность cpython больше не будет снижаться (для веб-разработчиков), pypy будет полностью готова к прайм-тайм. Раймонд Хеттингер (основной разработчик Python) назвал PyPy «питоном с включенной оптимизацией».

...