Pyston 2 - рэалізацыя Python з кампілятарам JIT

Пасля трохгадовага перапынку ў развіцці, апублікаваны запуск праекта Pyston 2, што я распрацаваўда высокаэфектыўнай рэалізацыі мовы Python з выкарыстаннем распрацовак праекта LLVM.

Рэалізацыя вылучаецца выкарыстаннем сучасных тэхналогій кампіляцыі JIT і накіравана на дасягненне высокай прадукцыйнасці, падобнай на традыцыйныя сістэмныя мовы, такія як C ++.

Код з папярэдніх версій by Pyston распаўсюджваўся па ліцэнзіі Apache, але код Pyston 2 пакуль недаступны, і для Ubuntu 18.04 і 20.04 выпускаюцца толькі гатовыя зборкі (файл з кодам даступны для загрузкі, але ёсць толькі заглушка з інфармацыяй, што праект усё яшчэ закрыты).

Публікацыя кода ўваходзіць у планы распрацоўшчыкаўале гэта будзе зроблена пасля завяршэння фарміравання бізнес-мадэлі новай кампаніі, і было вырашана працягваць распрацоўку Pyston без фінансавай падтрымкі Dropbox.

Пра Pyston 2

У адрозненне ад папярэдніх версій, Pyston 2 адзначаны стабільным а не ў якасці пробнай версіі. Шмат працы было зроблена для аптымізацыі прадукцыйнасці, і Pyston 2 цяпер хутчэй, чым зыходны Python 3.8, прыблізна на 20% пры праходжанні набору тэстаў python-macrobenchmarks.

Найбольш прыкметны прырост прадукцыйнасці назіраецца ва ўласцівых нагрузках веб-прыкладанняў. У асобных тэстах, такіх як chaos.py і nbody.py, Pyston 2 пераўзыходзіць Python 3.8 у 2 разы. Кошт выкарыстання JIT - гэта невялікі рост спажывання памяці.

Мы вельмі рады выпусціць Pyston v2, больш хуткую і вельмі сумяшчальную рэалізацыю мовы праграмавання Python. Версія 2 на 20% хутчэйшая за стандартны Python 3.8 у нашых макрабэнхмарках. Што яшчэ больш важна, хутчэй за ўсё, у вашым кодзе. Pyston v2 можа знізіць выдаткі на сервер, скараціць затрымкі карыстальнікаў і павысіць прадукцыйнасць распрацоўшчыкаў.

Pyston v2 просты ў рэалізацыі, таму, калі вы шукаеце лепшую прадукцыйнасць Python, мы рэкамендуем вам заняць пяць хвілін і паспрабаваць Pyston. Гэта адзін з самых простых спосабаў паскорыць ваш праект.

З пункту гледжання сумяшчальнасці з родным Python, праект Pyston рэкламуецца як найбольш сумяшчальная альтэрнатыўная рэалізацыя CPython, паколькі Pyston - відэлец асноўнай кодавай базы CPython.

Пістон падтрымлівае ўсе функцыі CPython, у тым ліку API C для распрацоўкі пашырэнняў C. Першапачаткова Pyston быў распрацаваны Dropbox, які ў 2017 годзе вырашыў спыніць унутраную распрацоўку. У пачатку 2020 года галоўныя распрацоўшчыкі Pyston заснавалі сваю кампанію, цалкам пераасэнсавалі праект і пачалі працаваць у Pyston на поўную стаўку.

Тэхнічныя падрабязнасці пра набіванне Pyston 2 пакуль не прадастаўляюцца, згадваюцца толькі DynASM JIT, убудаванае кэшаванне і агульныя аптымізацыі CPython. У папярэдняй версіі Pyston адначасова выкарыстоўваўся адзін метад JIT, аналагічны JIT у сучасных рухавіках JavaScript.

У JIT код Python быў прааналізаваны і перакладзены да прамежкавага прадстаўлення LLVM (IR, прамежкавае прадстаўленне). Акрамя таго, ВК-апрацоўка была апрацавана ў аптымізатары LLVM і перададзена для выканання рухавіку LLVM JIT, які пераўтварыў ВК-ўяўленне ў машынны код.

Для атрымання інфармацыі пра тыпы зменных для праграм на дынамічнай мове Python быў выкарыстаны прыём імавернаснага прагназавання тыпаў аб'ектаў з наступным удакладненнем правільнасці выбару тыпу падчас выканання.

Такім чынам, Pyston пастаянна вар'іраваў выкананне паміж дзвюма галінамі: хуткай, калі пацвярджаюцца прагназуемыя хуткасці, і павольнай, якая выкарыстоўваецца ў выпадку неадпаведнасці тыпу.

Праца можа быць выканана ў шматструменным рэжыме, дазваляючы паралельнае выкананне некалькіх патокаў кода на мове Python і вызвалены ад глабальнай блакавання інтэрпрэтатара (GIL).

У рэшце рэшт калі вы хочаце даведацца пра гэта больш, вы можаце праверыць дэталі ў наступная спасылка.


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

Будзьце першым, каб каментаваць

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаныя *

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.