The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск PyPy 2.4, реализации Python, написанной на языке Python

23.09.2014 09:30

Доступен релиз PyPy 2.4, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Версия PyPy 2.4 примечательна переработкой кода GIL-блокировки и переходом на использование в качестве целевой версии языка Python 2.7.8 (ранее поддерживалась 2.7.6). Кроме того, в код внесены очередные оптимизации - новый выпуск в среднем на 4% быстрее прошлой версии PyPy и в 6.3 раза быстрее классического CPython 2.7. Выпуск доступен для x86-систем Linux 32/64, OpenBSD, Mac OS X 64 и Windows 32, а также для систем на базе архитектуры ARM (ARMv6 или ARMv7 с VFPv3).

Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

Новшества, добавленные в PyPy 2.4:

  • Проведён внутренний рефакторинг кода обработки строк и байтовых массивов (bytearray). Переписана реализация глобальной блокировки интерпретатора (GIL, global interpreter lock), не позволяющей обеспечить параллельное выполнение нескольких нитей кода на языке Python. Изменения позволили увеличить производительность обработки строк в некоторых ситуациях и существенно поднять производительность при выполнении внешних вызовов, в том числе при выполнение модулей СFFI, реализованных с использованием интерфейса для вызова функций, написанных на языке Си.
  • Улучшена обработка серий объектов, таких как сокеты, в длительно выполняемых процессах. В итоге удалось добиться сокращения потребления памяти за счёт повышения эффективности сбора и высвобождения подобных объектов;
  • Стандартные библиотеки Python обновлены с 2.7.6 до версии 2.7.8;
  • В сборках для платформы Windows обеспечено статическое связывание с zlib, expat, bzip и openssl-1.0.1i.

Основные особенности 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: Первый выпуск PyPy-STM, интерпретатора Python с поддержкой многоядерных систем
  3. OpenNews: Первый стабильный выпуск PyPy3 с поддержкой Python 3
  4. OpenNews: Доступно обновление Python 2.7.8
  5. OpenNews: Второй выпуск Pyston, реализации языка Python с JIT-компилятором
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40652-pypy
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 10:19, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >> общее потребление памяти в сложных и длительно работающих процессах превышает потребление CPython в полтора-два раза.

    Ява приложения в таких случаях потребляют примерно в 3 раза больше памяти чем Cpython.

     
     
  • 2.6, Аноним (-), 12:14, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Толсто
     
     
  • 3.9, Аноним (-), 12:25, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +11 +/
    в среднем, в 3 раза больше
    http://benchmarksgame.alioth.debian.org/u64q/python.php
     
     
  • 4.11, Варикоз (?), 14:01, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    но и цпу важ в 76 раз больше...
     
     
  • 5.21, Аноним (-), 17:59, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Бидон не тормозит. Если у тебя в 76 раз больше CPU.
     
     
  • 6.31, Аноним (-), 10:21, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Во первых там для особо одаренных написано что многое зависит от алгоритма решения определенного теста.

    Во вторых среднее по времени всех тестов 25Х, учитывая что PYPY в текущем виде в 6,7 раз быстрее стандартной версии Python(CPython)? который в тесте, и при этом потребляет в 3 раза меньше памяти, уже не видны плюсы Java.

     
     
  • 7.32, Аноним (-), 10:39, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Во вторых среднее по времени всех тестов 25Х,

    "А если вот так посмотреть - то вовсе даже и не кривой".

     

  • 1.10, annualslayer (ok), 12:27, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а кто-нибудь кроме Quora юзает его в продакшене?
     
     
  • 2.18, Аноним (-), 17:31, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Рдио кажется.
     
  • 2.20, Andrey Mitrofanov (?), 17:49, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > а кто-нибудь кроме Quora юзает его в продакшене?

    Во, https://mail.python.org/pipermail/pypy-dev/2011-October/008716.html
    настоящий саксесс стори, с +200%. "Академический".

    ---
    А так, да _все ищут. pypy.org ищет, гугль ищет... https://www.google.com/search?q=pypy+in+production

     
     
  • 3.33, annualslayer (ok), 11:00, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А так, да _все ищут. pypy.org ищет, гугль ищет... https://www.google.com/search?q=pypy+in+production

    у меня по этому запросу только про квору показало


     

  • 1.13, qqq (??), 14:41, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    кто реально разрабатывал на py-py: отпишитесь пожалуйста, как оно.
     
  • 1.14, Аноним (-), 14:50, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот PyQt в нём по прежнему не работает (
     
  • 1.15, Аноним (-), 16:23, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Для длительно работающих прог на python может быть очень кстати. fail2ban тут не в тему ли?
     
     
  • 2.22, Аноним (-), 18:00, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > fail2ban тут не в тему ли?

    Да, его уже переписали на си, чтобы не #$%ть себе мозг двадцатью видами интерпретаторов и как они не тормозят.


     
     
  • 3.24, chinarulezzz (ok), 18:24, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    инфа от инсайдера? %)
     
     
  • 4.34, Аноним (-), 15:56, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > инфа от инсайдера? %)

    Ага, тынц http://sourceforge.net/projects/mf2b/ - один инсайдер.
    А вот еще тынц - https://forum.openwrt.org/viewtopic.php?id=32685

    Как ты понимаешь, ставить кучу бидонятины на роутер - ну вообще совсем не в кассу, а вот ssh от брутфорсеров прикрыть - вполне жизненная задача.

     
     
  • 5.35, chinarulezzz (ok), 22:54, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    так «переписали на си, чтобы не #$%ть себе мозг двадцатью видами интерпретаторов и как они не тормозят» или написали легковесную реализацию fail2ban для embedded?

    ты агитируешь чтоб сразу все писали на Си, тогда дескать проблем с встраиваимыми устр-вами не будет? :-D

     
  • 2.25, Andrey Mitrofanov (?), 18:41, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Для длительно работающих прог на python может быть очень кстати. fail2ban тут
    > не в тему ли?

    Ты знал!   http://www.fail2ban.org/wiki/index.php/Requirements

    """
    Requirements
    Required
    The only required dependency needed to run Fail2ban is Python. You need:
        0.9 branch
            Python >=2.6, Python >=3.2, PyPy
        0.8 branch (>=0.8.2)
            Python >=2.4
        0.8 branch (<0.8.2)
            Python >=2.3

     

  • 1.16, softfire (?), 16:46, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > > > но при этом (в отличии от erlang) всё происходит в одном физическом потоке ОС)

    Что за бред? В Эрланге легковесные процессы. Они не имеют ничего общего с потоками ОС. И что вообще за термин "физический поток"?

     
     
  • 2.17, Andrey Mitrofanov (?), 17:15, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >И что вообще за термин "физический поток"?

    Это из теории струн. А нет, струй.

     
     
  • 3.19, Аноним (-), 17:31, 23/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Физики струячат :) (R)
     

  • 1.23, Аноним (-), 18:01, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нужно больше недопиленных и несовместимых между собой реализаций бидона, милорд!
     
  • 1.26, Аноним (-), 19:46, 23/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сколько террабайт памяти нужно, чтобы его собрать?
     
  • 1.28, Гость (??), 06:10, 24/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я так понимаю надо начинать ждать РуРуРУ ?  не ?
     
     
  • 2.30, Andrey Mitrofanov (?), 10:04, 24/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > я так понимаю надо начинать ждать РуРуРУ ?  не ?

    Зачем-зачем?

    """For building PyPy, we recommend installing a pre-built PyPy first [...]. It is possible to build PyPy with CPython, but it will take a lot longer to run – depending on your architecture, between two and three times as long.

     

  • 1.29, Гость (??), 06:11, 24/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот дом, который построил Джек....

    ;)

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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