Pyston projekta izstrādātāji, kas piedāvā augstas veiktspējas Python valodas īstenojumu, izmantojot modernās JIT kompilācijas tehnoloģijas, ir prezentējuši Pyston-lite paplašinājumu ar JIT kompilatora īstenojumu CPython. Ja Pyston ir atzarojums no CPython koda bāzes un attīstās neatkarīgi, tad Pyston-lite ir noformēts kā universāls paplašinājums, kas paredzēts savienošanai ar standarta Python (CPython) interpretētāju.
Pyston-lite ļauj izmantot Pyston pamattehnoloģijas nesamainot interpretētāju, instalējot papildu paplašinājumu, izmantojot pakotņu pārvaldniekus PIP vai Conda. Pyston-lite jau ir pieejams PyPI un Conda krātuvēs, un lai to instalētu, pietiek izpildīt komandu «pip install pyston_lite_autoload» vai «conda install pyston_lite_autoload -c pyston». Ir piedāvāti divi pakotnes: pyston_lite (tiešais JIT) un pyston_lite_autoload (nodrošina automātisku JIT iestāšanos Python procesa startēšanā). Ir iespējama arī programmatiskā JIT ieslēgšana no lietojumprogrammas bez autoload moduļa instalēšanas, izmantojot funkciju pyston_lite.enable().
Lai arī Pyston-lite nepārsedz visas Pyston optimizācijas, tā izmantošana ļauj uzlabot veiktspēju par aptuveni 10-25% salīdzinājumā ar standarta Python 3.8. Nākotnē ir plānots pārvietot lielāko daļu no Pyston pieejamajām optimizācijām uz Pyston-lite, kā arī paplašināt atbalstītās CPython versijas (pirmais izlaidums atbalsta tikai Python 3.8). No globāliem plāniem tiek minēta sadarbība ar CPython komandu, lai īstenotu jaunus API JIT, kas ļaus pilnīgāk kontrolēt Python darbību. Tiek apspriesta ierosināto izmaiņu iekļaušana Python 3.12 zarā. Ideālā gadījumā tiek apsvērta iespēja pārvietot visu funkcionalitāti no Pyston uz paplašinājumu, kas ļautu atteikties no sava forka CPython uzturēšanas.
Papildus Pyston-lite projektā ir izlaists arī pilnā Pyston 2.3.4 paketes atjauninājums, kurā ir piedāvātas jaunas optimizācijas. Pyperformance testā 2.3.4 versija ir apmēram par 6% ātrāka nekā 2.3.3 izlaidums. Kopējais veiktspējas pieaugums salīdzinājumā ar CPython ir novērtēts 66%.
Turpmāk var atzīmēt optimizācijas, kas tiek īstenotas CPython 3.11 izstrādes cikla ietvaros, kuras dažos testos ļāva palielināt veiktspēju par 25%. Piemēram, CPython 3.11 ir uzlabota bāzes moduļu bytecode stāvokļa kešatmiņas efektivitāte, kas paātrinās skriptu palaišanu par 10-15%. Funkciju izsaukums ir ievērojami paātrināts un pievienoti specializēti ātrie interpretatori tipiskām operācijām. Tiek arī strādāts pie dažām optimizācijām, kuras sagatavojuši projekti Cinder un HotPy.
Papildus projektā nogil tiek strādāts pie eksperimentālā CPython kompilācijas režīma bez globālās interpretatora bloķēšanas (GIL, Global Interpreter Lock), kas neļauj vienlaicīgi piekļūt kopīgiem objektiem no dažādiem pavedieniem un traucē operāciju paralelizāciju daudzkodolu sistēmās. Kā citu risinājumu GIL problēmai tiek izstrādāta iespēja piesaistīt atsevišķu GIL katram interpretatoram, kas tiek izpildīts iekšpusē procesa (vienā procesā var darboties vairāki interpretatori, taču to paralēlā izpilde ir ierobežota ar GIL).
Avots: opennet.lv
