The OpenNET Project / Index page

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

Релиз PyPy 7.1, реализации Python, написанной на языке Python

25.03.2019 22:01

Опубликован релиз проекта PyPy 7.1, в рамках которого развивается реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Выпуск подготовлен одновременно для веток PyPy2.7, PyPy3.5 и PyPy3.6 (beta-версия), обеспечивающих поддержку синтаксиса Python 2.7, Python 3.5 и Python 3.6. Выпуск доступен для Linux (x86, x86_64, PPC64, s390x, ARMv6 или ARMv7 с VFPv3), macOS (x86_64), OpenBSD, FreeBSD и Windows (x86).

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

Новый выпуск примечателен переработкой внутреннего представления строк. Строки теперь изначально хранятся в кодировке utf8. Изменение позволило заметно поднять производительность работы со строками за счёт избавления от выполнения перекодирования. Перевод строк на utf-8 пока принят только в ветку PyPy 3.5, но в ближайшее время также ожидается и в ветке 3.6. Из других изменений отмечается улучшение работы python-интерфейса buffer со структурами и массивами ctype, что позволило оптимизировать совместный доступ к буферам между ctypes и NumPy. Обновлён модуль CFFI 1.12.2 (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языках Си и C++. CFFI рекомендован для взаимодействия с кодом на Си, в то время как cppyy для кода на C++.

  1. Главная ссылка к новости (https://morepypy.blogspot.com/...)
  2. OpenNews: Релиз PyPy 7.0, реализации Python, написанной на языке Python
  3. OpenNews: Увидел свет язык программирования Python 3.7
  4. OpenNews: Выпуск Nuitka 0.6.0, компилятора для языка Python
  5. OpenNews: Утверждена новая модель управления разработкой Python
  6. OpenNews: Проект RustPython развивает реализацию интерпретатора Python на языке Rust
Лицензия: CC-BY
Тип: Программы
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (32) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:04, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нужно.
     
     
  • 2.8, Аноним (8), 23:22, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Только в теории... На практике, если ваш проект использует хотя бы 10 библиотек, вероятность, что хотя бы одна некорректно работает с PyPy становится близка к 100%. Столько раз уже это проходили
     

  • 1.2, IRASoldier (?), 22:08, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >Строки теперь изначально хранятся в кодировке utf8

    Наконец-то, хвала Омниссии.

     
     
  • 2.3, Аноним (3), 22:18, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А до это в каком виде хранились, как в CPython 3 в UCS-2?
     
     
  • 3.12, IRASoldier (?), 00:10, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    UCS-4
     

  • 1.4, Анонимс (?), 22:24, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython).

    Это просто магия какая-то. А как же утверждение, что нет ничего быстрее С? Как такое возможно?

     
     
  • 2.5, Аноним (5), 22:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ну смотри. Интел тоже поначалу был суперсверхвысокоскоростным. А потом кое-что выяснилось.
     
  • 2.7, myhand (ok), 23:00, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > А как же утверждение, что нет ничего быстрее С?

    А кто утверждал, что PyPy обгоняет C?

    > Как такое возможно?

    Одна реализация Python обгоняет другую, что тут невозможного-то?  Кстати, обе на C.

     
     
  • 3.10, Аноним (8), 23:28, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати, обе на C.

    А вот и нет, PyPy написан на Python

     
     
  • 4.11, myhand (ok), 23:47, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    RPython, да.  Но внутре-то у ней все-же C.
     
     
  • 5.21, funny.falcon (?), 14:27, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Но внутре-то у ней все-же C.

    Правда? Покажешь?

     
     
  • 6.23, myhand (ok), 16:10, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    $ ldd /usr/lib/pypy3/bin/pypy3-c
            ...
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd32e596000)
            ...
     
     
  • 7.31, K (?), 21:09, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это всего лишь доказывает, что rpython компилит в elf-бинарь
     
     
  • 8.32, myhand (ok), 20:52, 29/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И еще немножко дергает сишных либ ... текст свёрнут, показать
     
  • 2.9, Аноним (8), 23:26, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Здесь дело не в языке, на котором написана та или иная реализация, а в подходе. Здесь JIT, который позволяет иногда значительно ускорить исполнение. Это как C/C++ и Java/C#: первая пара быстрее, но за счёт того, что у второй пары есть JIT, это делает их быстрее, т.к. они подстраиваются под конкретную платформу, на которой исполняется код, в то время как C/C++ приходится шипить лишь с общим набором инструкций.
     
     
  • 3.14, Аноним (14), 08:30, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Такого смешного и профанского объяснения почему jit быстрее статическию скомаиленного кода я ещё не видел. Спасибо вы сделали мой день. Побольше бы вас таких и уменя всегда будет работа.
     
     
  • 4.19, Аноним (19), 13:41, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так а в чём он не прав? Если вы компилите для себя, то да C/C++ конечно будет быстрее. Но если вы собираетесь продавать, то там у каждого свой процессор и свой набор инструкций, поэтому и приходится компилить с общим набором инструкций. Тут то JIT и выходит на сцену
     
     
  • 5.33, Евгений (??), 12:03, 30/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ржака :)
     
  • 4.20, нех (?), 14:05, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    и возможно, когда-нибудь вы накопите на репетитора по русскому языку.
     
  • 2.17, Аноним84701 (ok), 13:16, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython).
    > Это просто магия какая-то. А как же утверждение, что нет ничего быстрее  С? Как такое возможно?

    Интерпретатор bash написан на си, значит принципиально ничего не может быть быстрее bash? o_O
    Кстати, утверждение довольно новомодно -- есть еще "ничего нет быстрее ассемблера", "ничего нет быстрее опкодов", ... , "ничего нет быстрее бабочек!".

     
     
  • 3.18, helgi (??), 13:38, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Быстрота бабочек заключается в отсутствии лишних движений, а не в скорости передвижения )
     
  • 2.22, Amphyby (ok), 14:53, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    просто на любом языке можно писать как на пихоне. так и получаются уродства медленные на плюсах
     
     
  • 3.25, Аноним (25), 18:34, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тс-с-с! товарищ! Оптимизацией займёмся позже, а пока пишем, что душе угодно.
     
  • 2.30, pvv (??), 17:34, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    на питоне написан jit компилятор, который преобразует код на питоне сразу в машинный код.
    и его быстродействие не зависит от того на чём оно написано (именно выполнение, а не компиляция)
    а на Си написан интерпретатор, (возможно в промежуточный байт-код какой-нибудь виртуальной машины, хз что там у питона внутри). и он естественно работает медленнее, но не потому что написан на С.


     

  • 1.6, Alexey (??), 22:52, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Почему магия? Если хитро программировать, то и assembler будет медленным
     
     
  • 2.15, Аноним (15), 11:34, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если программировать, как учат на специальности "программирование".
     
     
  • 3.26, Аноним (25), 18:35, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Точно! Не надо в профильный вуз, а надо в кулинарный техникум (есть ещё такие?) -- там уж научитесь между рецептами котлеток и солянок (суп это, между прочим, а не тушёная капуста :).
     
     
  • 4.27, Аноним (27), 20:29, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Точно! Не надо в профильный вуз, а надо в кулинарный техникум (есть ещё такие?

    А ты не смейся. У нас тут ЕАИС от профессиональных сертифицированных программистов с лапшекодом внутри и полной невозможностью запиливания сканера полиса ОМС. Падает на любой неосторожный чих и синхронизируется флешкой силами (ногами) специально обученной девочки-эникейщицы.

    Извините, накипело.

     

  • 1.13, Аноним (13), 07:16, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Судя по новости про Pyright нужно было переписать на ES и тогда оно будет в 10 раз быстрее работать.
     
     
  • 2.16, vdb (?), 12:11, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    И жрать в 10 раз больше памяти?
     

  • 1.28, chmodder (?), 07:23, 27/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Сделали UTF

    Шёл 2019 год...

     
     
  • 2.29, nobody (??), 10:31, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Сделали UTF

    8

    И что? В жаве и винде вот до сих пор не сделали

     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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