...
Субота, 1 Листопада, 2025
9.3 C
Kyiv

Python 3.14 йде швидше за допомогою оптимізації хвостового виклику

Python 3.14, який дійсно слід називати Pi-Thon, побачив його п’ятий випуск альфа. Він вводить нового перекладача, який може бути як на 30% швидше, залежно від того, що ви робите.


PFSBanner

Ви можете подумати, що враховуючи мікроскоп, що код CPYTHON, як правило, знаходиться в тому, що для покращення швидкості було мало можливостей. Однак саме це вдосконалення більше стосується того, що компілятори можуть зробити для вас:

“Новий тип інтерпретатора, заснований на викликах хвоста на 9-15% швидше на Pyperformance залежно від платформи та архітектури.

Наразі цей перекладач працює лише з Clang 19 та новішими на x86-64 та AARCH64 архітектури. Однак ми очікуємо, що майбутній випуск GCC також підтримає це “.

Той факт, що вдосконалення, здається, залежить від Clang і що GCC наздоганяє, повинен дати вам підказку про те, що відбувається щось дивне. Поліпшена швидкість обумовлена ​​оптимізацією Clang 19, що підтримує хвіст. Якщо вам цікаво, що вдосконалення рекурсії має відношення до того, щоб зробити Python швидше, то ви перебуваєте в правому бальному парку, але не зовсім в грі. У останній підпрограмі або функції, яке потрібно викликати в гнізді дзвінків. Наприклад:

def funA:
 do things
 funB()
 do things
 return

def funB:
 do things
 funC()
 return

Тут ви можете побачити, що Func – це хвіст, оскільки нічого не відбувається після того, як він називається. Оптимізація майже тривіальна – замініть дзвінок на стрибок, тоді, коли Func робить його повернення, він еквівалентний поверненню у фанбі. Це проста та безпечна оптимізація, оскільки FUNC все ще має доступ до місцевих змінних у фанбі, і все працює, як і раніше. Дивно, що просто проста оптимізація має стільки ефекту. Це означає, що немає необхідності створювати нову рамку стека, і це зменшує загальний тиск на простір. Здається, що дзвінки хвоста дуже поширені, і їх усунення варто зробити.

На даний момент лише Clang підтримує оптимізацію, і більш широко використовуваний GCC ще не підтримує його ..

“Ця функція наразі є введенням. Ми настійно рекомендуємо включити оптимізацію, керовану профілем, за допомогою нового інтерпретатора, оскільки це єдина конфігурація, яку ми перевірили, і може підтвердити її вдосконалену продуктивність. Для отримання додаткової інформації про те, як побудувати Python, див.- з хвостовим викликом-інтерп. “

Я не бачу, що така проста оптимізація має будь -який обсяг для приховування проблем, тому слід спробувати.

Python3

  • Майк Джеймс є автором Python програміста: щось зовсім інше Серія книг, які вирішили показати, як Python відрізняється від інших мов програмування та як його особливості заслуговують на нашу увагу. Його новітня книга, Розширення та вбудовування python за допомогою cпоказує, як поєднання C з Python призводить до збільшення швидкості щонайменше в 10 разів швидше.

Більше інформації

https://www.python.org/downloads/release/python-3140a5/

Пов’язані статті

Python 3.13 тут

До побачення Гіл – але чи зробить це Python швидше?

Python 3.11 йде швидше

Guido та Microsoft хочуть зробити Python X2 швидше

Щоб бути поінформованими про нові статті про I програміста, підпишіться на наш щотижневий інформаційний бюлетень, підписатися на RSS -канал і слідкуйте Twitter, Facebook або LinkedIn.

Банер



Гаряче цього тижня

Теми

Завжди заряджати телефон шкідливо для акумулятора? Apple, Samsung і Google беруть участь

Був час, коли користувачів смартфонів попереджали не залишати свої...

Як працює агент ШІ з патентних досліджень, хто може використовувати

Замість складного пошуку патентів за ключовими словами, користувачі можуть...

Рада малого бізнесу та підприємництва

Рієва Лесонскі – Минулого тижня ми обговорювали, як споживачі планують...