Найти тему

Python 3.11 Работает Быстрее

Python неплохо справляется с быстрой работой, учитывая, насколько он сложен, но, похоже, в соответствии с независимыми тестами он будет работать намного лучше. Версия 3.11 включает в себя многие изменения, обещанные в более быстром проекте CPython.

Многие программисты жалуются, что Python медленный, и по сравнению с C так оно и есть, но по сравнению с C таковым является почти все.

Python предлагает вам язык высокого уровня со скоростью, которая делает его достаточно хорошим для многих вещей. Проблема в том, что Python просто не сильно улучшается с каждой новой версией, но все это скоро изменится. Мы сообщили о новых усилиях по ускорению процесса в середине 2021 года, и теперь мы начинаем видеть некоторые результаты.

Официальная документация в настоящее время утверждает, что улучшение на 25% для версии 3.11 по сравнению с версией 3.10. Сайт тестирования Phoronix провел обширное тестирование и сообщает, что текущая бета-версия Python 3.11 была на 45% быстрее, чем версия 3.10, и на 48% быстрее, чем более старая версия 3.8. Это впечатляет.

Есть много причин для улучшений, но самая важная описана в PEP 659 - специализированном адаптивном интерпретаторе. По-видимому, это способ преобразования динамических операций Python в более специализированные операции, которые не позволяют что-то менять. Это означает, что мы можем получить лучшее из обоих миров - динамическую типизацию с эффективностью статической типизации. Она не идеальна и не всегда применима.

Нет никакого движения по важному вопросу удаления GIL из Python. Глобальная блокировка интерпретатора или GIL ограничивает интерпретатор Python одновременным запуском только одного потока, даже при запуске на многоядерной машине. Это одно из самых больших разочарований для тех, кто хочет ускорить процесс. GIL, несмотря на то, что он замедляет работу для продвинутых пользователей, ускоряет работу большинства однопоточных программ. Общее ощущение, по-видимому, заключается в том, что удаление GIL неприемлемо, если результат замедляет процесс однопоточной разработки. Сэм Гросс доказал, что это можно сделать, сделав это.

Удаление GIL без замедления работы однопоточных программ было достигнуто - но только за счет внедрения оптимизаций, которые не имеют ничего общего с GIL. Общее беспокойство заключается в том, что теперь, когда некоторые из этих улучшений были включены в Python 3.11, стандарт для удаления GIL только что изменился. Теперь задача состоит в том, чтобы удалить GIL, не замедляя работу однопоточных программ, но после того, как они были ускорены улучшениями, которые были введены в попытке удалить GIL.

Вторая общая жалоба заключается в том, что до сих пор нет компилятора JIT (Just In Time) для Python. Другие языки, в частности JavaScript, выиграли от ускорения, которое обеспечивает JIT, но команда Python по-прежнему неопределенно относится к любым будущим усилиям по созданию JIT, рассматривая другие варианты.

Дополнительные улучшения находятся в стадии разработки для версии 3.12. Трудно поверить, что можно добиться гораздо большего, но мы увидим.

Python 3.11 в настоящее время находится в стадии бета-тестирования и должен быть выпущен в последнем квартале 2022 года.