Esitluses on Pyston-lite, JIT-kompilaator standardsele Pythonile

Pyston'i arendajad, mis pakuvad kõrge jõudlusega teostust Python'i keelest, kasutades kaasaegseid JIT-kompileerimise tehnoloogiaid, tutvustasid Pyston-lite laiendust, mis sisaldab JIT-kompilaatori teostust CPython'i jaoks. Kui Pyston on CPython'i koodibaasi haru ja areneb iseseisvalt, siis Pyston-lite on vormistatud universaalse laiendina, mis on mõeldud ühendamiseks standardse Python interpreteraatoriga (CPython).

Pyston-lite võimaldab kasutada Pyston'i põhitehnoloogiaid ilma interpreteraatori vahetamiseta, installides täiendava laienduse PIP või Conda paketihalduri abil. Pyston-lite on juba saadaval PyPI ja Conda hoidlates ning installimiseks piisab, kui käivitada käsk "pip install pyston_lite_autoload" või "conda install pyston_lite_autoload -c pyston". Pakutakse kahte paketti: pyston_lite (otse JIT) ja pyston_lite_autoload (mis teostab automaatse JIT'i aktiveerimise Python'i protsessi käivitamisel). Samuti on võimalik programmeeritav JIT'i aktiveerimine rakendusest ilma autoload mooduli paigaldamiseta, kasutades funktsiooni pyston_lite.enable().

Kuigi Pyston-lite ei kata kõiki Pyston'is saadaval olevaid optimeerimisi, võimaldab selle kasutamine suurendada jõudlust umbes 10-25% võrreldes tavalise Python 3.8-ga. Edasi plaanitakse viia Pyston-lite'i enamik Pyston'is olemasolevaid optimeerimisi ning laiendada toetatavaid CPython'i versioone (esimene versioon toetab ainult Python 3.8). Tõsisemate plaanide seas on koostöö CPython'i meeskonnaga uute API-de rakendamise nimel JIT'i jaoks, mis võimaldaks paremat kontrolli Python'i töö üle. Arutatakse pakutud muudatuste kaasamist Python 3.12 harusse. Ideaalis kaalutakse kogu Pyston'i funktsionaalsuse üleviimist laiendusse, mis võimaldaks loobuda oma CPython'i fork'i hooldamisest.

Lisaks Pyston-lite'ile on projekt välja andnud ka tervikliku Pyston 2.3.4 paketi uuenduse, milles on pakutud uusi optimeerimisi. Pyperformance testis on versioon 2.3.4 umbes 6% kiiremini kui väljaanne 2.3.3. Üldine jõudluse kasv võrreldes CPython'iga on hinnatud 66%-ks.

Lisaks võib märkida CPython 3.11 arendamise käigus välja töötatud optimeerimisi põhiprojektis, mis mõnes testis võimaldas tõsta jõudlust 25%. Näiteks on CPython 3.11 suurenenud alglaadimise efektiivsus, cache’ides ba модuulide baitkoodi olek, mis kiirendab skriptide käivitamist 10-15%. Funktsioonide kutsumine on märkimisväärselt kiirem ning lisatud on spetsialiseeritud kiired tõlgendajad tüüpiliste operatsioonide jaoks. Samuti tehakse tööd, et viia üle mõned optimeerimised projektidest Cinder ja HotPy.

Lisaks tegeletakse nogil projekti raames eksperimenteerimise režiimi arendamisega CPythoni kokkupanekuks ilma globaalsete tõkete (GIL, Global Interpreter Lock) rakendamiseta, mis välistab samaaegse juurdepääsu jagatud objektidele erinevatest lõimudest, takistades operatsioonide paraleliseerimist mitme tuumaga süsteemides. Teise lahendusena GIL-i probleemile arendatakse võimalust siduda eraldi GIL iga tõlgendaja jaoks, mis töötab protsessi sees (ühes protsessis võib töötada mitu tõlgendajat, kuid nende paindlikkuse efektiivsus sõltub GIL-ist).

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster