Bemutatkozik a Pyston-lite, JIT fordító a standard Pythonhoz

A Pyston projekt fejlesztői, akik egy magas teljesítményű Python nyelv megvalósítását kínálják, modern JIT-kompilálási technológiák alkalmazásával, bemutatták a Pyston-lite bővítményt, amely JIT-kompilátort tartalmaz a CPythonhoz. Míg a Pyston a CPython kódalapjának ága és elkülönülten fejlődik, a Pyston-lite egy univerzális bővítményként készült, amely a Python (CPython) beépített értelmezőjéhez való csatlakozásra szolgál.

A Pyston-lite lehetővé teszi a Pyston alapvető technológiáinak használatát anélkül, hogy meg kellene változtatni az értelmezőt, egy további bővítmény telepítésével a PIP vagy Conda csomagkezelő segítségével. A Pyston-lite már elérhető a PyPI és Conda tárolókban, és a telepítéshez elegendő a következő parancs végrehajtása: „pip install pyston_lite_autoload” vagy „conda install pyston_lite_autoload -c pyston”. Két csomag áll rendelkezésre: a pyston_lite (maga a JIT) és a pyston_lite_autoload (automatikusan behelyettesíti a JIT-et a Python folyamat indításakor). A JIT bekapcsolására programozottan is van lehetőség az alkalmazáson belül, az autoload modul telepítése nélkül, a pyston_lite.enable() funkció használatával.

Bár a Pyston-lite nem tartalmazza az összes Pystonban elérhető optimalizációt, használata körülbelül 10-25%-kal növelheti a teljesítményt a szokásos Python 3.8-hoz képest. A jövőben tervezik a legtöbb optimalizáció átportolását a Pyston-litetre, valamint a támogatott CPython verziók bővítését (az első kiadás csak a Python 3.8-at támogatja). A globális tervek között szerepel a CPython csapatával való együttműködés új JIT API-k megvalósításában, amelyek lehetővé teszik a Python működésének teljeskörűbb ellenőrzését. A javasolt módosítások Python 3.12 ágába való beépítése is napirenden van. Ideális esetben szóba jött a Pyston összes funkcionalitásának bővítménybe való átportolása is, hogy el lehessen kerülni a CPython saját forkjának fenntartását.

A Pyston-lite mellett a projekt kiadta a teljes Pyston 2.3.4 csomag frissítését is, amely új optimalizációkat kínál. A pyperformance tesztben a 2.3.4-es verzió körülbelül 6%-kal gyorsabb a 2.3.3-as kiadásnál. Az CPythonhoz viszonyított általános teljesítményjavulás 66%-ra tehető.

Továbbá megemlíthetjük a CPython 3.11 fejlesztési ciklusán belül végrehajtott optimalizálásokat, amelyek a fő projektben egyes tesztekben 25%-kal növelték a teljesítményt. Például a CPython 3.11-ben javították az alapmodulok bájtkódjának állapotcache-elésének hatékonyságát, ami 10-15%-kal gyorsítja a szkriptek indítását. A függvények hívása jelentősen felgyorsult, és speciális gyors értelmezők kerültek bevezetésre a tipikus műveletekhez. A Cinder és a HotPy projektek keretein belül néhány optimalizálás átvitelén is dolgoznak.

A nogil projekt keretein belül a CPython globális értelmezőzár (GIL, Global Interpreter Lock) nélküli kísérleti összegyűjtési módján is munkálkodnak, amely nem teszi lehetővé, hogy különböző szálak egyidejűleg hozzáférjenek megosztott objektumokhoz, ami megnehezíti a párhuzamos műveletek végrehajtását többszálú rendszereken. Egy másik lehetséges megoldás a GIL problémájára az, hogy a folyamaton belül futó egyes értelmezőkhöz külön GIL-t rendelnek (egy folyamatban több értelmező is futhat, de hatékony párhuzamos végrehajtásuk GIL-en ütközik).

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster