Python 3.12 повышаем скорость и эффективность благодаря новым возможностям

Улучшенное использование памяти, новые интерпретаторы и адаптивные функции, которые повышают производительность Python

Python 3.12 повышаем скорость и эффективность благодаря новым возможностям

Python 3.12 был выпущен 6 мая 2023 года с улучшениями, повышающими его скорость и эффективность. На недавнем мероприятии PyCon в Солт-Лейк-Сити, штат Юта, разработчики ядра представили улучшения, которые включают снижение использования памяти, увеличение скорости интерпретатора и оптимизацию компиляции для более эффективного кода. Одним из улучшений является реализация субинтерпретаторов, механизма, который позволяет нескольким интерпретаторам работать вместе в рамках одного процесса. Хотя субинтерпретаторы существуют уже некоторое время, они не были легко доступны конечному пользователю из-за запутанного состояния внутренних компонентов Python. В Python 3.12 разработчик ядра Эрик Сноу и его команда достаточно очистили внутреннюю часть, чтобы сделать под-интерпретаторы более полезными. Они также добавили в стандартную библиотеку новый модуль “интерпретаторы”, который предоставляет программистам базовый способ запуска субинтерпретаторов и выполнения кода на них.

Эксперименты Сноу с субинтерпретаторами показали, что они превосходят потоковую и многопроцессорную обработку. Например, простая веб-служба, которая выполняла некоторую работу, связанную с процессором, имела максимальную скорость 100 запросов в секунду с потоками и 600 с мультипроцессингом, но с субинтерпретаторами она дала 11 500 запросов с минимальным падением при масштабировании с одного клиента. В настоящее время модуль интерпретаторов имеет ограниченную функциональность и не имеет механизмов для обмена состоянием между субинтерпретаторами, но Сноу считает, что в Python 3.13 будет добавлено больше функциональности. А пока разработчикам предлагается поэкспериментировать.

Python 3.11 ввел в интерпретатор новые байткоды, называемые адаптивными инструкциями, которые могут быть автоматически заменены во время выполнения на версии, специализированные для данного типа Python. Этот процесс, называемый quickening, ускоряет весь процесс, избавляя интерпретатор от необходимости искать типы объектов. В Python 3.12 больше опкодов адаптивной специализации, а заголовки объектов теперь занимают всего 96 байт, что чуть меньше половины того, что было раньше.

+1
5
+1
5
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *