The OpenNET Project / Index page

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

Выпуск PyPy3 5.5, реализации Python 3, написанной на языке Python

13.10.2016 10:27

Доступен выпуск PyPy3 5.5.0, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Ветка PyPy3 развивается синхронно с PyPy и отличается поддержкой Python 3. В частности, если выпуск PyPy обеспечивает поддержку языка Python 2.7.10, то PyPy3 предоставляет реализацию Python 3.3.5. Выпуск доступен для Linux (x86, x86_64, PPC64, s390x, ARMv6 или ARMv7 с VFPv3), macOS и Windows.

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

В новой версии проведена работа по улучшению совместимости с веткой Python 3.3 (3.3.5). Добавлена поддержка функций os.get_terminal_size(), time.monotonic(), str.casefold() и модуля faulthandler. В состав включён пакет ensurepip. Улучшен интерфейс для работы с буферами. Внесены улучшения в JIT. Началась работа по поддержке Python 3.5.

  1. Главная ссылка к новости (https://morepypy.blogspot.ru/2...)
  2. OpenNews: Выпуск PyPy 5.1, реализации Python, написанной на языке Python
  3. OpenNews: Выпуск PyPy 5.0, реализации Python, написанной на языке Python
  4. OpenNews: Первый стабильный выпуск PyPy3 с поддержкой Python 3
  5. OpenNews: Выпуск Pyston 0.5, реализации языка Python с JIT-компилятором
  6. OpenNews: PyPy.js - реализация языка Python для web-браузеров
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45317-pypy
Ключевые слова: pypy
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Rodegast (ok), 10:58, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти

    JIT он такой: одно лечит, другое калечит...

     
     
  • 2.8, Аноним (-), 17:06, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такова природа алгоритмов. Довольно редко бывает, что эффективности можно добиться без использования памяти.
     
     
  • 3.10, Аноним (-), 17:34, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Надеюсь это сказал прожжённый ассемблерщик, знающий как сделать на такт быстрее и на байт меньше.
     
  • 3.11, all_glory_to_the_hypnotoad (ok), 17:43, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    на самом деле такое бывает часто. Даже бывает наоборот, т.е. нужно уменьшить кол-во используемой памяти чтобы увеличить производительность. И если бы питон не был таким дерьмом внутри, то существовали бы намного более эффективные методы оптимизаций чем JIT.
     
     
  • 4.21, Аноним (-), 05:52, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И если бы питон не был таким дерьмом внутри

    Ругать работу коллег-сишников жутко непрофессионально. Я почему-то уверен, что в реальной жизни Вы так не поступаете. Сам-то много не-дерьма насоздавал, а? Как насчет пары ссылочек на свои перлы прямо сейчас?

     
     
  • 5.23, all_glory_to_the_hypnotoad (ok), 17:45, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ругать работу коллег-сишников жутко непрофессионально.

    А не си-шников можно? Ох уж эти шовинисты-нравоучители. В наше время рукожопых людей просто необходимо чморить, унижать и всячески демотивировать ибо в противном случае они превращаются в инициативных идиотов и начинают наносить всем вред.

    > Я почему-то уверен, что в реальной жизни Вы так не поступаете.

    По себе, двуличному шовинисту, судишь?

     
  • 4.25, myhand (ok), 21:14, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что же такого "дерьмового" в синтаксисе Python (ничем принципиально не отличающимся от 100500 других динамических ЯП), что ему заказаны "эффективные методы оптимизаций" (тм), кроме JIT?

    Кстати, какие именно методы, для самообразования?

     

  • 1.2, Аноним84701 (?), 11:21, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python)

    Используется питон, которые не совсем питон ...
    Почему бы не писать просто про RPython (--- пояснение про RPython и про то, что там вообще-то Сишный бэкэнд, т.е. генерируется сишный код ;) --- ), а то эта копипаста уже года четыре из новости в новость кочует и каждый раз притягивает претендентов на звание Истинного Петросяна, с унылыми^W искрометно-юморными шутками про "питон, который на питоне, который на питоне надо было писать"

     
  • 1.3, антоним (?), 13:34, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Доступен выпуск Python, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество Python).
     
     
  • 2.4, Аноним (-), 13:36, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Go одним словом, только хуже.
     
     
  • 3.5, Наркоман (?), 13:53, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Но всё равно лучше питона, да.
     
  • 3.7, Crazy Alex (ok), 14:58, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Только лучше, вы хотели сказать
     
  • 3.9, vitalif (ok), 17:12, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ...причём на amd64 это Go медленнее PyPy на вот этом https://github.com/famzah/langs-performance простеньком бенчмарке, буквально вчера тестил
     
     
  • 4.12, Аноним (-), 19:11, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как Java в ущерб памяти.
     
  • 4.13, Аноним (-), 19:30, 13/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на числах Фибоначчи совсем другие результаты.
     
  • 4.20, angra (ok), 04:16, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В этом бенчмарке достаточно сделать тривиальную оптимизацию заменив s := []int{} на s := make([]int, 0, n/2) и Go выдаст на 25% больше строчек, что как раз равно разнице между ним и pypy  в https://github.com/famzah/langs-performance/blob/master/results/2016-09-09.out
    Если заменить проход по s с помощью range на классический Cишный вариант, то получим еще 10%, а это уже победа. Замечу, что обе эти оптимизации не трогают алгоритм.
     
     
  • 5.22, vitalif (ok), 16:04, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну массив заранее там для многих языков можно выделить, и везде это, естественно, что-то улучшает. nodejs тоже в полтора раза ускоряется с выделением заранее.

    вопрос в том чтобы честно сравнить, на одинаковых операциях...

     
     
  • 6.26, angra (ok), 22:03, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    То есть ты предлагаешь намеренно неэффективный код на Go сравнить с оптимизациями PyPy? Ну ок, PyPy победил в этой номинации, только не надо из этого делать вывод, что он быстрее Go в реальных задачах.
     

  • 1.6, Аноним (-), 14:26, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Было бы хорошо если бы, 3.5, но они наверное не догонят
     
  • 1.14, Lhatsad (?), 22:28, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Тормозной язык переписанный на тормозном языке цитирую "позволяет обеспечить высокий уровень производительности". Вот они - чудеса хакерской маетматики!
     
  • 1.15, Vlad Violenty (?), 22:32, 13/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как PyPy в длинной арифметике по сравнению с python?
     
     
  • 2.24, myhand (ok), 21:09, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно также, как и у CPython - они используют умножение Карацубы для bigint с числом цифирь выше некоторого предела.  В противном случае - "школьное" умножение O(n**2).

    Хочите чудес - используйте библиотеки, написанные профи в предмете.  Для CPython есть обертка gmpy2 (для GMP).  Как у ей с cffi - не знаю.

    PS: А не, вот есть уже gmpy_cffi для pypy.

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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