Entwodwi Pyston-lite, yon du JIT pou natif natal Python

Devlopè pwojè Pyston yo, ki ofri yon aplikasyon wo-pèfòmans nan lang Python lè l sèvi avèk teknoloji modèn konpilasyon JIT, prezante ekstansyon Pyston-lite a ak yon aplikasyon du JIT pou CPython. Pandan ke Pyston se yon branch nan CPython kodbaz epi li devlope separeman, Pyston-lite fèt kòm yon ekstansyon inivèsèl ki fèt pou konekte ak entèprèt estanda Python (CPython).

Pyston-lite pèmèt ou sèvi ak teknoloji debaz Pyston yo san w pa chanje entèprèt la, lè w enstale yon ekstansyon adisyonèl lè l sèvi avèk PIP oswa manadjè pake Conda. Pyston-lite deja òganize nan depo PyPI ak Conda epi pou enstale li, jis kouri lòd "pip install pyston_lite_autoload" oswa "conda install pyston_lite_autoload -c pyston". Yo ofri de pake: pyston_lite (dirèkteman JIT) ak pyston_lite_autoload (fè otomatik sibstitisyon JIT lè pwosesis Python la kòmanse). Li posib tou pou kontwole enklizyon JIT nan aplikasyon an san yo pa enstale modil autoload la, lè l sèvi avèk fonksyon pyston_lite.enable().

Malgre ke Pyston-lite pa kouvri tout optimize ki disponib nan Pyston, itilizasyon li yo ka amelyore pèfòmans apeprè 10-25% konpare ak regilye Python 3.8. Nan lavni an, li planifye pou transfere pi fò nan optimize prezan nan Pyston nan Pyston-lite, osi byen ke elaji vèsyon yo sipòte nan CPython (premye lage a sèlman sipòte Python 3.8). Plis plan mondyal yo enkli kolaborasyon ak ekip CPython pou aplike nouvo API pou JIT, sa ki pèmèt plis kontwòl konplè sou travay Python. Enklizyon chanjman yo pwopoze yo nan branch Python 3.12 la ap diskite. Idealman, yo konsidere posiblite pou nou deplase tout fonksyonalite ki soti nan Pyston nan ekstansyon an, sa ki pral pèmèt nou evite kenbe pwòp fouchèt CPython nou an.

Anplis Pyston-lite, pwojè a te pibliye tou yon aktyalizasyon nan pake Pyston 2.3.4 plen véritable, ki ofri nouvo optimize. Nan tès la pyperformance, vèsyon 2.3.4 se pi vit pase lage 2.3.3 pa apeprè 6%. Pwofi an jeneral pèfòmans konpare ak CPython estime a 66%.

Anplis de sa, nou ka sonje optimize yo devlope nan sik devlopman CPython 3.11 nan pwojè prensipal la, ki nan kèk tès te fè li posib ogmante pèfòmans pa 25%. Pou egzanp, nan CPython 3.11, efikasite nan kachèt eta a bytecode nan modil debaz yo te ogmante, ki pral pi vit lansman an nan scripts pa 10-15%. Apèl fonksyon yo te siyifikativman akselere ak entèprèt espesyalize rapid nan operasyon estanda yo te ajoute. Travay ap fèt tou pou pote kèk optimize pwojè Cinder ak HotPy yo prepare.

Anplis de sa, nan pwojè nogil la, travay ap fèt sou yon mòd eksperimantal pou bati CPython san yon seri entèprèt global (GIL, Global Interpreter Lock), ki pa pèmèt aksè paralèl nan objè pataje ki soti nan diferan fil, ki anpeche paralèlizasyon nan operasyon sou milti. -sistèm debaz yo. Kòm yon lòt solisyon pou pwoblèm GIL la, kapasite pou lye yon GIL separe ak chak entèprèt k ap kouri nan yon pwosesis ap devlope (plizyè entèprèt ka kouri nan yon pwosesis, men efikasite nan ekzekisyon paralèl yo depann de GIL la).

Sous: opennet.ru

Add nouvo kòmantè