Pyston-lite, JIT-kompiler foar stock Python yntrodusearre

De ûntwikkelders fan it Pyston-projekt, dat in ymplemintaasje fan 'e Python-taal mei hege prestaasjes biedt mei moderne JIT-kompilaasjetechnologyen, presintearre de Pyston-lite-útwreiding mei in ymplemintaasje fan' e JIT-kompiler foar CPython. Wylst Pyston in tûke is fan 'e CPython-koadebase en apart ûntwikkele is, is Pyston-lite ûntworpen as in universele útwreiding ûntworpen om te ferbinen mei de standert Python-tolk (CPython).

Pyston-lite lit jo de basis Pyston-technologyen brûke sûnder de tolk te feroarjen, troch in ekstra útwreiding te ynstallearjen mei de PIP- as Conda-pakketbehearder. Pyston-lite is al hosted yn 'e PyPI- en Conda-repositories en om it te ynstallearjen, útfiere gewoan it kommando "pip install pyston_lite_autoload" of "conda install pyston_lite_autoload -c pyston". Twa pakketten wurde oanbean: pyston_lite (direkt JIT) en pyston_lite_autoload (fiert automatyske JIT-ferfanging as it Python-proses begjint). It is ek mooglik om programmatysk it opnimmen fan JIT fan 'e applikaasje te kontrolearjen sûnder de autoloadmodule te ynstallearjen, mei de funksje pyston_lite.enable ().

Hoewol Pyston-lite net alle optimisaasjes dy't beskikber binne yn Pyston dekt, kin it gebrûk dêrfan de prestaasjes ferbetterje mei sawat 10-25% yn ferliking mei gewoane Python 3.8. Yn 'e takomst is it pland om de measte optimisaasjes oanwêzich yn Pyston oer te setten nei Pyston-lite, en ek de stipe ferzjes fan CPython útwreidzje (de earste release stipet allinich Python 3.8). Mear globale plannen omfetsje gearwurking mei it CPython-team om nije API's foar JIT te ymplementearjen, wêrtroch mear folsleine kontrôle oer it wurk fan Python mooglik is. It opnimmen fan 'e foarstelde wizigingen yn' e Python 3.12-tûke wurdt besprutsen. Ideaallik wurdt de mooglikheid beskôge om alle funksjonaliteit fan Pyston yn 'e útwreiding te ferpleatsen, wêrtroch't wy ús eigen CPython-gabel kinne foarkomme.

Neist Pyston-lite hat it projekt ek in update frijlitten foar it folsleine Pyston 2.3.4-pakket, dat nije optimisaasjes biedt. Yn 'e pyperformance-test is ferzje 2.3.4 rapper dan release 2.3.3 mei sawat 6%. De totale prestaasjeswinst yn ferliking mei CPython wurdt rûsd op 66%.

Derneist kinne wy ​​​​de optimisaasjes notearje ûntwikkele binnen de CPython 3.11-ûntwikkelingssyklus yn it haadprojekt, dy't yn guon tests it mooglik makken om prestaasjes mei 25% te ferheegjen. Bygelyks, yn CPython 3.11 is de effisjinsje fan it cache fan 'e bytecode-tastân fan basismodules ferhege, wat de lansearring fan skripts mei 10-15% sil fersnelle. Funksjeoproppen binne signifikant fersneld en spesjalisearre rappe tolken fan standert operaasjes binne tafoege. Der wurdt ek wurke oan it portearjen fan guon optimalisaasjes taret troch de Cinder- en HotPy-projekten.

Dêrnjonken wurdt binnen it nogil-projekt wurke oan in eksperimintele modus foar it bouwen fan CPython sûnder in globale tolkslot (GIL, Global Interpreter Lock), dy't gjin parallelle tagong ta dielde objekten fan ferskate threaden tastiet, wat parallelisaasje fan operaasjes op multi foarkomt. - kearn systemen. As in oare oplossing foar it GIL-probleem wurdt de mooglikheid ûntwikkele om in aparte GIL te binen oan elke tolk dy't rint binnen in proses (ferskate tolken kinne yn ien proses rinne, mar de effisjinsje fan har parallelle útfiering hinget ôf fan 'e GIL).

Boarne: opennet.ru

Add a comment