Pyston-lite, JIT samesteller vir voorraad Python bekendgestel

Die ontwikkelaars van die Pyston-projek, wat 'n hoëprestasie-implementering van die Python-taal bied wat moderne JIT-samestellingstegnologie gebruik, het die Pyston-lite-uitbreiding bekendgestel met die implementering van 'n JIT-samesteller vir CPython. As Pyston 'n tak van die CPython-kodebasis is en afsonderlik ontwikkel, dan is Pyston-lite ontwerp as 'n universele uitbreiding wat ontwerp is om aan die gewone Python-tolk (CPython) te koppel.

Pyston-lite laat jou toe om die basiese Pyston-tegnologieë te gebruik sonder om die tolk te verander, deur 'n bykomende uitbreiding te installeer deur die PIP- of Conda-pakketbestuurder te gebruik. Pyston-lite word reeds in die PyPI- en Conda-bewaarplekke gehuisves, en om te installeer, voer net die opdrag "pip install pyston_lite_autoload" of "conda install pyston_lite_autoload -c pyston" uit. Twee pakkette word voorgestel: pyston_lite (JIT direk) en pyston_lite_autoload (doen outomatiese JIT-vervanging wanneer 'n Python-proses begin word). Dit is ook moontlik om die aktivering van JIT vanuit die toepassing programmaties te beheer sonder om die outolaai-module te installeer, deur die pyston_lite.enable()-funksie te gebruik.

Alhoewel Pyston-lite nie al die optimaliserings wat in Pyston beskikbaar is, dek nie, maak die gebruik daarvan voorsiening vir ongeveer 10-25% prestasieverbeterings bo gewone Python 3.8. In die toekoms beplan ons om die meeste van die optimaliserings wat in Pyston teenwoordig is, na Pyston-lite oor te dra, asook om die ondersteunde weergawes van CPython uit te brei (die eerste weergawe ondersteun slegs Python 3.8). Van die meer globale planne is daar 'n gesamentlike werk met die CPython-span oor die implementering van nuwe API's vir JIT, wat meer volledige beheer oor die werk van Python moontlik maak. Bespreek die insluiting van die voorgestelde veranderinge in die Python 3.12-tak. Ideaal gesproke word die moontlikheid oorweeg om alle funksionaliteit van Pyston na 'n uitbreiding oor te dra, wat ons sal toelaat om weg te kom van die handhawing van ons eie vurk van CPython.

Benewens Pyston-lite, het die projek ook 'n opdatering van die volwaardige Pyston 2.3.4-pakket vrygestel, wat nuwe optimaliserings insluit. In die pyperformance-toets is weergawe 2.3.4 vinniger as vrystelling 2.3.3 met ongeveer 6%. Die algehele prestasietoename bo CPython word op 66% geraam.

Daarbenewens kan ons let op die optimaliserings wat ontwikkel is in die raamwerk van die CPython 3.11-ontwikkelingsiklus in die hoofprojek, wat ons in sommige toetse toegelaat het om prestasie met 25% te verhoog. Byvoorbeeld, in CPython 3.11 is die doeltreffendheid van die kas van die toestand van die greepkode van basismodules verbeter, wat die bekendstelling van skrifte met 10-15% sal bespoedig. Funksie-oproepe is aansienlik versnel en gespesialiseerde vinnige tolke van tipiese operasies is bygevoeg. Werk is ook aan die gang om sommige van die optimaliserings wat deur die Cinder- en HotPy-projekte voorberei is, oor te dra.

Boonop word daar binne die raamwerk van die nogil-projek gewerk aan 'n eksperimentele CPython-boumodus sonder 'n globale tolkslot (GIL, Global Interpreter Lock), wat nie parallelle toegang tot gedeelde voorwerpe vanaf verskillende drade toelaat nie, wat parallelisering van bedrywighede verhoed. op meerkernstelsels. As 'n ander oplossing vir die probleem met die GIL, word die vermoë ontwikkel om 'n aparte GIL te bind aan elke tolk wat binne 'n proses loop (verskeie tolke kan in een proses loop, maar die doeltreffendheid van hul parallelle uitvoering berus op die GIL).

Bron: opennet.ru

Voeg 'n opmerking