The OpenNET Project / Index page

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

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

Доступен релиз 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
Тип: Программы
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.2, Аноним (-), 10:19, 23/09/2014 [ответить] [показать ветку] [···]     [к модератору]
  • +1 +/
    Ява приложения в таких случаях потребляют примерно в 3 раза больше памяти чем Cp... весь текст скрыт [показать]
     
     
  • 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 [^] [ответить]     [к модератору]  
  • +/
    Во первых там для особо одаренных написано что многое зависит от алгоритма решен... весь текст скрыт [показать]
     
     
  • 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 - один инсайдер А вот еще тынц ... весь текст скрыт [показать]
     
     
  • 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:
    Заголовок:
    Текст:


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