Predstavljen je Pyston-lite, JIT-kompilator za običajni Python

Razvijalci projekta Pyston, ki ponuja visoko zmogljivo implementacijo programskega jezika Python z uporabo sodobne tehnologije JIT-kompilacije, so predstavili razširitev Pyston-lite z implementacijo JIT-kompilatorja za CPython. Medtem ko je Pyston odcep od izvorne kode CPython in se razvija neodvisno, je Pyston-lite zasnovan kot univerzalna razširitev, namenjena povezovanju s privzetim interpreterjem Python (CPython).

Pyston-lite omogoča uporabo osnovnih tehnologij Pyston brez zamenjave interpreterja, s namestitvijo dodatne razširitve preko upravitelja paketov PIP ali Conda. Pyston-lite je že dostopen v repozitorijih PyPI in Conda, in za namestitev je dovolj, da izvedete ukaz „pip install pyston_lite_autoload“ ali „conda install pyston_lite_autoload -c pyston“. Na voljo sta dva paketa: pyston_lite (JIT sam) in pyston_lite_autoload (samodejna zamenjava JIT ob zagonu procesa Python). Programska kontrola vklopa JIT iz aplikacije je mogoča tudi brez namestitve modula autoload, s funkcijo pyston_lite.enable().

Kljub temu da Pyston-lite ne pokriva vseh razpoložljivih optimizacij v Pystonu, njegova uporaba omogoča povečanje zmogljivosti za približno 10-25% v primerjavi z običajnim Python 3.8. V prihodnosti je načrtovan prenos večine optimizacij iz Pystona v Pyston-lite, prav tako širitev podprtih različic CPython (prva izdaja podpira le Python 3.8). Med širšimi načrti se omenja sodelovanje s skupino CPython pri implementaciji novih API-jev za JIT, ki omogočajo večje nadzorovanje delovanja Pythona. Omenja se vključitev predlaganih sprememb v vejo Python 3.12. V idealnem primeru se razmišlja o prenosu vse funkcionalnosti iz Pystona v razširitev, kar bi omogočilo opustitev ohranjanja lastnega forka CPython.

Poleg Pyston-lite je projekt izdal tudi posodobitev celotnega paketa Pyston 2.3.4, ki ponuja nove optimizacije. V testu pyperformance je različica 2.3.4 hitrejša od 2.3.3 za približno 6%. Skupni dobiček pri zmogljivosti v primerjavi s CPython je ocenjen na 66%.

Dodatno se mogu spomenuti optimizacije koje se razvijaju u okviru ciklusa razvoja CPython 3.11, koje su u nekim testovima omogućile povećanje performansi do 25%. Na primer, u CPython 3.11 povećana je efikasnost keširanja stanja bajtkoda osnovnih modula, što će ubrzati pokretanje skripti za 10-15%. Pozivi funkcija su znatno ubrzani, a dodani su specijalizovani brzi interpretatori za tipične operacije. Takođe se radi na prenosu nekih optimizacija pripremljenih projektima Cinder i HotPy.

Dodatno, u okviru projekta nogil, radi se na eksperimentalnom režimu kompilacije CPython bez globalne blokade interpretera (GIL, Global Interpreter Lock), koja ne omogućava paralelni pristup deljenim objektima iz različitih niti, što ometa paralelizaciju operacija na višeključnim sistemima. Kao alternativno rešenje problema sa GIL-om razvija se mogućnost vezivanja pojedinačnog GIL-a za svaki interpreter koji se izvršava unutar procesa (u jednom procesu može se izvršavati više interpreter a, ali efikasnost njihove paralelne primene se suočava sa GIL-om).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster