Objavljen je Pyston-lite, JIT kompajler za standardni Python

Programeri projekta Pyston, koji nudi visoko performantnu implementaciju programskog jezika Python uz korištenje suvremenih JIT kompajlerskih tehnologija, predstavili su proširenje Pyston-lite s implementacijom JIT kompajlera za CPython. Dok je Pyston odvojen od izvornog koda CPython i razvija se samostalno, Pyston-lite je oblikovan kao univerzalno proširenje namijenjeno povezivanju sa standardnim interpreterom Python-a (CPython).

Pyston-lite omogućava korištenje osnovnih tehnologija Pyston bez promjene interpretera, putem instalacije dodatnog proširenja korištenjem paketnog menadžera PIP ili Conda. Pyston-lite je već dostupan u repozitorijima PyPI i Conda, a za instalaciju je dovoljno izvršiti komandu „pip install pyston_lite_autoload“ ili „conda install pyston_lite_autoload -c pyston“. Predložena su dva paketa: pyston_lite (izravni JIT) i pyston_lite_autoload (izvodi automatsku substituciju JIT prilikom pokretanja Python procesa). Također je moguće upravljati aktivacijom JIT iz aplikacije bez instalacije modula autoload, koristeći funkciju pyston_lite.enable().

Iako Pyston-lite ne pokriva sve dostupne optimizacije u Pystonu, njegova upotreba omogućava povećanje performansi otprilike 10-25% u usporedbi sa standardnim Python 3.8. U budućnosti se planira prenos većine optimizacija prisutnih u Pystonu u Pyston-lite, kao i proširenje podržanih verzija CPython (prvo izdanje podržava samo Python 3.8). Od globalnijih planova ističe se suradnja s CPython timom na implementaciji novih API-ja za JIT, što će omogućiti potpuniju kontrolu rada Python-a. Razmatra se uključivanje predloženih promjena u granu Python 3.12. U idealnom scenariju razmatra se mogućnost prenosa cijele funkcionalnosti iz Pyston-a u proširenje, što bi omogućilo napuštanje održavanja vlastitog forka CPython.

Osim Pyston-lite, projekt je također izdao ažuriranje punopravnog paketa Pyston 2.3.4, u kojem su predložene nove optimizacije. U testu pyperformance verzija 2.3.4 je brža od verzije 2.3.3 otprilike 6%. Ukupna dobitak performansi u usporedbi s CPython-om procjenjuje se na 66%.

Dodatno se mogu spomenuti optimizacije razvijene unutar ciklusa razvoja CPython 3.11 u glavnom projektu, koje su u nekim testovima omogućile povećanje performansi na 25%. Na primjer, u CPython 3.11 povećana je efikasnost keširanja stanja bajtkoda osnovnih modula, što će ubrzati pokretanje skripti za 10-15%. Poziv funkcija je značajno ubrzan, a dodani su specijalizirani brzi interpretatori tipičnih operacija. Također se radi na prijenosu nekih optimizacija pripremljenih projektima Cinder i HotPy.

Dodatno, u okviru projekta nogil, radi se na eksperimentalnom režimu izgradnje CPython bez globalne blokade interpretera (GIL, Global Interpreter Lock), koja ne dozvoljava paralelni pristup zajedničkim objektima iz različitih niti, što otežava paralelizaciju operacija na višekernelskim sustavima. Kao alternativno rješenje problema s 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 raditi više interpretera, ali efikasnost njihovog paralelnog izvođenja ovisi o GIL-u).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster