Vývojáři projektu Pyston, který nabízí vysoce výkonnou implementaci jazyka Python využívající moderní JIT kompilace, představili rozšíření Pyston-lite s implementací JIT kompilátoru pro CPython. Zatímco Pyston je odvozeninou kódu CPython a vyvíjí se odděleně, Pyston-lite je navrženo jako univerzální rozšíření určené k připojení k oficiálnímu interpretátoru Python (CPython).
Pyston-lite umožňuje využívat základní technologie Pyston bez nutnosti měnit interpretátor, prostřednictvím instalace dodatečného rozšíření pomocí správce balíčků PIP nebo Conda. Pyston-lite je již k dispozici v repozitářích PyPI a Conda, a pro instalaci stačí spustit příkaz „pip install pyston_lite_autoload“ nebo „conda install pyston_lite_autoload -c pyston“. Jsou k dispozici dva balíčky: pyston_lite (přímo JIT) a pyston_lite_autoload (provádí automatickou inicializaci JIT při spuštění procesu Python). Je také možné programově řídit aktivaci JIT z aplikace bez instalace modulu autoload, pomocí funkce pyston_lite.enable().
I když Pyston-lite nezahrnuje všechny optimalizace dostupné v Pyston, jeho používání umožňuje zvýšení výkonu přibližně o 10-25 % ve srovnání s běžným Pythonem 3.8. V budoucnu se plánuje přenesení většiny optimalizací z Pyston do Pyston-lite a rovněž rozšíření podporovaných verzí CPython (první vydání podporuje pouze Python 3.8). Mezi ambiciózními plány je spolupráce s týmem CPython na implementaci nových API pro JIT, které umožní lepší kontrolu nad provozem Pythonu. Diskutuje se o zahrnutí navrhovaných změn do větve Python 3.12. Ideálně se zvažuje možnost přenést veškerou funkčnost z Pyston do rozšíření, což by umožnilo opustit vedení vlastního forku CPython.
Kromě Pyston-lite bylo také vydáno aktualizované plné balení Pyston 2.3.4, které nabízí nové optimalizace. V testu pyperformance je verze 2.3.4 rychlejší než vydání 2.3.3 přibližně o 6 %. Celkový zisk výkonu ve srovnání s CPython je odhadován na 66 %.
Dále je možné zmínit optimalizace vyvíjené v rámci cyklu vývoje CPython 3.11 v hlavním projektu, které v některých testech umožnily zvýšit výkon o 25 %. Například v CPython 3.11 byla zlepšena účinnost cachování stavu bajtkódu základních modulů, což zrychlí spuštění skriptů o 10-15 %. Výrazně byl urychlený volání funkcí a přidány specializované rychlé interpretery typových operací. Také se pracuje na přenosu některých optimalizací, které připravily projekty Cinder a HotPy.
Dále v rámci projektu nogil probíhá práce na experimentálním režimu sestavení CPython bez globální blokace interpretru (GIL, Global Interpreter Lock), která neumožňuje paralelní přístup k sdíleným objektům z různých vláken, což brání paralelizaci operací na vícejádrových systémech. Jako jiná varianta řešení problému s GIL se rozvíjí možnost přiřadit jednotlivý GIL k každému interpretru spouštěnému uvnitř procesu (v jednom procesu může běžet několik interpreterů, ale účinnost jejich paralelního běhu naráží na GIL).
Zdroj: opennet.ru
