Гвіда ван Рассум, стваральнік мовы праграмавання Python, у сваім дакладзе на канферэнцыі Python Language Summit распавёў аб планах па аптымізацыі прадукцыйнасці CPython. Да версіі 3.11, якая чакаецца ў 2022 годзе, распрацоўшчыкі спадзяюцца дабіцца павелічэння прадукцыйнасці ў два разы. Праектам па аптымізацыі CPython займаецца невялікая каманда распрацоўшчыкаў з кампаніі Microsoft, у якую нядаўна перайшоў на працу Гвіда.
Пры рэалізацыі праекта распрацоўшчыкі маюць намер прытрымлівацца шэрагу абмежаванняў, такіх як захаванне поўнай сумяшчальнасці на ўзроўні ABI і кода, а таксама недапушчальнасць павышэння прадукцыйнасці за кошт запаволення ў памежных выпадках. З складовых частак, якія можна будзе змяніць для павышэння прадукцыйнасці адзначаюцца байткод, размяшчэнне дадзеных у памяці, кампілятар і інтэрпрэтатар.
Напрацоўкі праекту публікуюцца ў асобным рэпазітары faster-cpython. Адзін з удзельнікаў праекта, які раней займаўся распрацоўкай JIT-кампілятра HotPy для CPython, апублікаваў план, у адпаведнасці з якім лічыць рэалістычным падняць прадукцыйнасць у пяць разоў і дамагчыся гэтага выніку ў выпуску Python 3.13. Праект падзелены на чатыры стадыі:
- У Python 3.10 плануецца рэалізаваць аптымізацыі ў інтэрпрэтатары, звязаныя з адаптацыяй працэсу інтэрпрэтацыі да тыпаў і значэнняў у працэсе выканання.
- У выпуску Python 3.11 чакаецца ўнясенне паляпшэнняў у runtime і ключавыя аб'екты, а таксама ўключэнне мноства дробных спецыялізаваных аптымізацый, такіх як паскарэнне бінарных аператараў і працы з цэлымі значэннямі, якія змяшчаюцца ў адно машыннае слова, паскарэнне выкліку і вяртання з функцый, зніжэнне накладных з памяццю і пры апрацоўцы выключэнняў.
- У Python 3.12 з'явіцца просты JIT-кампілятар, які ўжываецца для невялікай часткі спецыялізаванага кода.
- У Python 3.13 будуць дададзены новыя магчымасці генерацыі машыннага кода падчас выканання і пашырана ўжыванне JIT-кампілятара.
Крыніца: opennet.ru