Kynnti Pyston-lite, JIT þýðanda fyrir innfæddan Python

Hönnuðir Pyston verkefnisins, sem býður upp á afkastamikla útfærslu á Python tungumálinu með því að nota nútíma JIT safntækni, kynntu Pyston-lite viðbótina með útfærslu á JIT þýðandanum fyrir CPython. Þó Pyston sé útibú af CPython kóðagrunninum og sé þróað sérstaklega, þá er Pyston-lite hannað sem alhliða framlenging sem er hönnuð til að tengjast venjulegum Python túlk (CPython).

Pyston-lite gerir þér kleift að nota grunn Pyston tæknina án þess að skipta um túlk, með því að setja upp viðbótarviðbót með PIP eða Conda pakkastjóranum. Pyston-lite er nú þegar hýst í PyPI og Conda geymslunum og til að setja það upp skaltu bara keyra skipunina „pip install pyston_lite_autoload“ eða „conda install pyston_lite_autoload -c pyston“. Tveir pakkar eru í boði: pyston_lite (beint JIT) og pyston_lite_autoload (framkvæmir sjálfvirka JIT skiptingu þegar Python ferlið byrjar). Það er líka mögulegt að stjórna innlimun JIT frá forritinu án þess að setja upp sjálfvirka hleðslueiningu með því að nota pyston_lite.enable() aðgerðina.

Þrátt fyrir að Pyston-lite nái ekki til allra hagræðinga sem til eru í Pyston, getur notkun þess bætt afköst um um það bil 10-25% miðað við venjulega Python 3.8. Í framtíðinni er fyrirhugað að flytja flestar fínstillingar sem eru til staðar í Pyston yfir í Pyston-lite, auk þess að stækka studdar útgáfur af CPython (fyrsta útgáfan styður aðeins Python 3.8). Fleiri alþjóðlegar áætlanir fela í sér samvinnu við CPython teymið til að innleiða ný API fyrir JIT, sem gerir fullkomnari stjórn á vinnu Python. Rætt er um innkomu fyrirhugaðra breytinga í Python 3.12 útibúinu. Helst er verið að skoða möguleikann á að færa alla virkni frá Pyston inn í framlenginguna, sem gerir okkur kleift að forðast að viðhalda okkar eigin CPython gaffli.

Auk Pyston-lite gaf verkefnið einnig út uppfærslu á fullgildum Pyston 2.3.4 pakkanum, sem býður upp á nýjar hagræðingar. Í pyperformance prófinu er útgáfa 2.3.4 hraðari en útgáfa 2.3.3 um 6%. Heildarframmistöðuaukning miðað við CPython er áætlaður 66%.

Að auki getum við tekið eftir hagræðingunum sem þróaðar voru innan CPython 3.11 þróunarlotunnar í aðalverkefninu, sem í sumum prófum gerði það mögulegt að auka árangur um 25%. Til dæmis, í CPython 3.11, hefur skilvirkni vistunar bækikóðastöðu grunneininga verið aukin, sem mun flýta fyrir ræsingu forskrifta um 10-15%. Aðgerðarköllum hefur verið hraðað verulega og bætt við sérhæfðum hraðtúlkum staðlaðra aðgerða. Vinna er einnig í gangi við að flytja nokkrar hagræðingar sem unnar eru af Cinder og HotPy verkefnunum.

Að auki, innan nogil verkefnisins, er unnið að tilraunaham til að byggja upp CPython án alþjóðlegs túlklás (GIL, Global Interpreter Lock), sem leyfir ekki samhliða aðgang að sameiginlegum hlutum frá mismunandi þráðum, sem kemur í veg fyrir samhliða aðgerða á fjöl -kjarnakerfi. Sem önnur lausn á GIL vandamálinu er verið að þróa hæfileikann til að binda sérstakan GIL við hvern túlk sem keyrir innan ferlis (nokkrir túlkar geta verið í gangi í einu ferli, en skilvirkni samhliða framkvæmd þeirra fer eftir GIL).

Heimild: opennet.ru

Bæta við athugasemd