LINUX.ORG.RU

Гвидо ван Россум хочет ускорить Питон вдвое

 ,


1

2

На онлайн-конференции Python Language Summit 2021 автор языка и сотрудник Майкрософт Гвидо ван Россум рассказал о запланированном на версию 3.11 увеличении скорости CPython.

За проект Ван Россум благодарит пандемию и Майкрософт. Ему стало скучно на пенсии, он попробовал наняться в Майкрософт, его взяли и разрешили самому выбрать, чем заняться. Таким образом Майкрософт «возвращает долги» Питону.

В прошлом году уже предлагался 4-летний «план Шеннона», обещавший ускорение на 50% в год в течении 4 лет за 2 миллиона долларов (500 тысяч в год). Одним из условий было, чтобы направление разработки определяло сообщество, а не корпорации.

Сейчас разработкой на деньги Майкрософт занимаются Марк Шеннон, Эрик Сноу и Гвидо Ван Россум, могут привлечь и других программистов. Обещают прозрачное сотрудничество с ядром разработчиков основной ветки и плавное накопление изменений. Не будет ни долгосрочных параллельных форков, ни внезапных патчей из 6000 строк. Все изменения будут доступны для обсуждения на Гитхабе.

Разработчики приняли следующие ограничения:

  • Не ломать совместимость со стабильным ABI.
  • Не ломать частичную совместимость API.
  • Не ломать и не замедлять граничные случаи (например, не кидать миллион объектов в стек eval).
  • Не делать код несопровождаемым.

Поэтому нельзя менять базовые вещи: объекты, типы, счёт ссылок; байткод, стековый фрейм; компилятор, интерпретатор; внутреннее устройство большинства объектов…

Для ускорения версии 3.11 планируют:

  • Адаптивный интерпретатор байткода.
  • Множество сравнительно небольших оптимизаций:
    фрейм стека;
    ускорение вызовов;
    аллокация.
  • Обработка исключений «без накладных расходов». (кавычки Ван Россума)

Гарантии успеха не дают.

Также хотят:

  • Ускорить запуск.
  • Изменить формат файлов .pyc.
  • Ускорить операции с целыми.
  • Фиксированное смещение для __dict__.
  • «Скрытые классы».
  • «Tagged numbers».

В последующих версиях хотят добиться 5-кратного ускорения. Вероятно, будут генерировать машинный код (iOS в пролёте). Могут что-то сделать с ABI и API.

Кто выиграет — очевидно. Не будет особой разницы для библиотек на Си (numpy, tensorflow), программ, тормозящихся вводом-выводом, многопоточного кода. И для неэффективных алгоритмов.

PEP 659: https://www.python.org/dev/peps/pep-0659/
Гитхаб: https://github.com/faster-cpython/

>>> Презентация

★★★★★

Проверено: Shaman007 ()
Последнее исправление: commagray (всего исправлений: 3)

Ответ на: Про С не знаю. от Moisha_Liberman

Самый простой путь прочитать о проблемах современного Си - это ознакомится с трудами Столярова. Не обязательно соглашаться с ним во всем, но у него немало и критики «по делу». А насчет С++ - там типичная проблема ядреной смеси макак (сообщества которое считает себя умным), привилегированных макак с политическими идеями и группы людей которых вся эта «работа» кормит, соответственно они просто не могут остановится и перестать «впиливать» в стандарт фичи - кончатся деньги, девки, малибу, конференции и прочее.

anonymous
()
Ответ на: комментарий от anonymous

OMFG! =)))

Самый простой путь прочитать о проблемах современного Си - это ознакомится с трудами Столярова.

Понимаю. Это Вы меня так потроллить решили… =)))

Ну тогда держите в ответ. Столяров… Кто этот могучий старик? И что он знает о «проблемах современного С»? У «современного С» нет проблем кроме неграмотного «персонала», который чего-то там пытается программировать. Причём, выходит это плохо, т.к. «школу» надо было осваивать, а не «проходить». Надо было настойчиво изучать существующие инструментальные средства, а не требовать новых и новых. С ещё как-то держится видимо в силу консервативности программистов на нём и спектра решаемых ими задач.

Собственно, именно поэтому и не существует зарубежных аналогов господина Столярова и ему подобных товарищей, т.к. все предпочитают писать реализации своих задач, а не книги про возможно вот такую реализацию, но это не точно. Точно так же как в С нет «строк» как правило (если мы не берём какие-то частные реализации, использованные самим программистом). В С как были «массивы», так и остаются. А там уже чего именно – символов или числовых значений, это не важно.

Ненужно придумывать проблемы там, где их нет.

А насчет С++ - там типичная проблема ядреной смеси макак (сообщества которое считает себя умным), привилегированных макак с политическими идеями и группы людей которых вся эта «работа» кормит, соответственно они просто не могут остановится и перестать «впиливать» в стандарт фичи - кончатся деньги, девки, малибу, конференции и прочее.

Если бы не было «спроса», то не было бы и «предложения». Про «персонал» было выше. Что просили, то и получили и сейчас С++ это именно тот С++, который мы все (и я в том числе) заслуживаем.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от Kompilainenn

А что, так можно было?!

Гвидо — можно. Нам вряд ли.

Думаю, если Линус захочет, его тоже в MS возьмут на таких же условиях. Только есть вероятность, что он им средний палец покажет в ответ на такое предложение. А это для Сатьи репутационный риск, нунафиг.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

У меня была идея в свое время написать Линусу перед 1 апреля и попросить его написать 1 апреля пост о том, что он уходит работать в Россию в Ростелеком

Kompilainenn ★★★★★
()

Питон тормозит на компьютерах, где установлено 2 или более ядра Я использую Python 3.4.4 для создания веб-приложения с помощью Django на локальной машине Windows (Vista). Это работает нормально, однако мне нужно запустить его на других машинах.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.