Prezantohet përpiluesi i Pyston-lite, JIT për Python të aksioneve

Zhvilluesit e projektit Pyston, i cili ofron një zbatim me performancë të lartë të gjuhës Python duke përdorur teknologji moderne të përpilimit JIT, prezantuan zgjerimin Pyston-lite me një implementim të përpiluesit JIT për CPython. Ndërsa Pyston është një degë e bazës së kodeve CPython dhe është zhvilluar veçmas, Pyston-lite është projektuar si një shtesë universale e krijuar për t'u lidhur me interpretuesin standard Python (CPython).

Pyston-lite ju lejon të përdorni teknologjitë bazë të Pyston pa ndryshuar përkthyesin, duke instaluar një shtesë shtesë duke përdorur menaxherin e paketave PIP ose Conda. Pyston-lite tashmë është pritur në magazinat PyPI dhe Conda dhe për ta instaluar atë, thjesht ekzekutoni komandën "pip install pyston_lite_autoload" ose "conda install pyston_lite_autoload -c pyston". Ofrohen dy paketa: pyston_lite (drejtpërdrejt JIT) dhe pyston_lite_autoload (kryen zëvendësimin automatik të JIT kur fillon procesi Python). Është gjithashtu e mundur të kontrollohet programatikisht përfshirja e JIT nga aplikacioni pa instaluar modulin e ngarkimit automatik, duke përdorur funksionin pyston_lite.enable().

Megjithëse Pyston-lite nuk mbulon të gjitha optimizimet e disponueshme në Pyston, përdorimi i tij mund të përmirësojë performancën me afërsisht 10-25% krahasuar me Python 3.8 të rregullt. Në të ardhmen, është planifikuar të transferohen shumica e optimizimeve të pranishme në Pyston në Pyston-lite, si dhe të zgjerohen versionet e mbështetura të CPython (lëshimi i parë mbështet vetëm Python 3.8). Më shumë plane globale përfshijnë bashkëpunimin me ekipin e CPython për të zbatuar API të reja për JIT, duke lejuar kontroll më të plotë mbi punën e Python. Përfshirja e ndryshimeve të propozuara në degën Python 3.12 është duke u diskutuar. Në mënyrë ideale, po shqyrtohet mundësia e zhvendosjes së të gjithë funksionalitetit nga Pyston në shtesë, gjë që do të na lejojë të shmangim mbajtjen e pirunit tonë CPython.

Përveç Pyston-lite, projekti lëshoi ​​gjithashtu një përditësim të paketës së plotë Pyston 2.3.4, e cila ofron optimizime të reja. Në testin pyperformance, versioni 2.3.4 është më i shpejtë se lëshimi 2.3.3 me rreth 6%. Fitimi i përgjithshëm i performancës në krahasim me CPython vlerësohet në 66%.

Për më tepër, mund të vëmë re optimizimet e zhvilluara brenda ciklit të zhvillimit CPython 3.11 në projektin kryesor, të cilat në disa teste bënë të mundur rritjen e performancës me 25%. Për shembull, në CPython 3.11, efikasiteti i ruajtjes së gjendjes së bytekodit të moduleve bazë është rritur, gjë që do të përshpejtojë lëshimin e skripteve me 10-15%. Thirrjet e funksioneve janë përshpejtuar ndjeshëm dhe janë shtuar përkthyes të shpejtë të specializuar të operacioneve standarde. Po punohet gjithashtu për të portuar disa optimizime të përgatitura nga projektet Cinder dhe HotPy.

Për më tepër, në kuadër të projektit nogil, po punohet për një modalitet eksperimental për ndërtimin e CPython pa një bllokim global interpretuesi (GIL, Global Interpreter Lock), i cili nuk lejon qasje paralele në objekte të përbashkëta nga fije të ndryshme, gjë që parandalon paralelizimin e operacioneve në shumë -sistemet thelbësore. Si një zgjidhje tjetër për problemin GIL, po zhvillohet aftësia për të lidhur një GIL të veçantë për secilin përkthyes që ekzekutohet brenda një procesi (disa interpretues mund të ekzekutohen në një proces, por efikasiteti i ekzekutimit të tyre paralel varet nga GIL).

Burimi: opennet.ru

Shto një koment