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 [^] [ответить] [смотреть все]  
  • +/
    А если вот так посмотреть - то вовсе даже и не кривой ... весь текст скрыт [показать]
     
  • 1.10, annualslayer, 12:27, 23/09/2014 [ответить] [смотреть все]  
  • +/
    а кто-нибудь кроме Quora юзает его в продакшене?
     
     
  • 2.18, Аноним, 17:31, 23/09/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Рдио кажется.
     
  • 2.20, Andrey Mitrofanov, 17:49, 23/09/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Во, https mail python org pipermail pypy-dev 2011-October 008716 html настоящи... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, annualslayer, 11:00, 24/09/2014 [^] [ответить] [смотреть все]  
  • +/
    у меня по этому запросу только про квору показало ... весь текст скрыт [показать]
     
  • 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 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да, его уже переписали на си, чтобы не ть себе мозг двадцатью видами интерпре... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.24, chinarulezzz, 18:24, 23/09/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    инфа от инсайдера? %)
     
     
  • 4.34, Аноним, 15:56, 24/09/2014 [^] [ответить] [смотреть все]  
  • +/
    Ага, тынц http sourceforge net projects mf2b - один инсайдер А вот еще тынц ... весь текст скрыт [показать]
     
     
  • 5.35, chinarulezzz, 22:54, 24/09/2014 [^] [ответить] [смотреть все]  
  • +/
    так 171 переписали на си, чтобы не ть себе мозг двадцатью видами интерпрета... весь текст скрыт [показать]
     
  • 2.25, Andrey Mitrofanov, 18:41, 23/09/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Ты знал http www fail2ban org wiki index php Requirements Requirements ... весь текст скрыт [показать] [показать ветку]
     
  • 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