The OpenNET Project / Index page

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

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

Доступен выпуск 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
Тип: Программы
Ключевые слова: pypy
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | 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:
    Заголовок:
    Текст:


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