Pyston-lite, en JIT-kompilator til standard Python, er præsenteret.

Udviklerne af projektet Pyston, der tilbyder en højtydende implementering af Python-sproget ved hjælp af moderne JIT-kompileringsteknologier, har præsenteret Pyston-lite, et udvidelsesmodul med en JIT-kompilator til CPython. Mens Pyston er et afstamning fra CPython's kodebase og udvikles separat, er Pyston-lite udformet som en universel udvidelse beregnet til at tilslutte sig den originale Python-tolk (CPython).

Pyston-lite gør det muligt at bruge grundlæggende Pyston-teknologier uden at erstatte tolken, ved at installere en ekstra udvidelse gennem pakkehåndtereren PIP eller Conda. Pyston-lite er allerede tilgængelig i PyPI og Conda-repositories, og for installation er det tilstrækkeligt at køre kommandoen «pip install pyston_lite_autoload» eller «conda install pyston_lite_autoload -c pyston». Der tilbydes to pakker: pyston_lite (selve JIT) og pyston_lite_autoload (som udfører automatisk JIT-substitution ved opstart af Python-processen). Programmering af JIT-aktivering fra applikationen er mulig uden installation af autoload-modulet ved hjælp af funktionen pyston_lite.enable().

Selvom Pyston-lite ikke dækker alle optimeringer, der er tilgængelige i Pyston, muliggør dets brug en præstationsforbedring på omtrent 10-25% sammenlignet med almindelig Python 3.8. Fremover planlægges det at overføre de fleste optimeringer, der findes i Pyston, til Pyston-lite samt udvide de understøttede versioner af CPython (den første udgave understøtter kun Python 3.8). I mere omfattende planer nævnes et samarbejde med CPython-teamet om at implementere nye API'er for JIT, som vil give en mere fuld kontrol over Python's funktionalitet. Det diskuteres at inkludere de foreslåede ændringer i Python 3.12-versionen. Ideelt set overvejes muligheden for at flytte al funktionalitet fra Pyston til en udvidelse, hvilket vil eliminere behovet for at vedligeholde en egen forgrening af CPython.

Udover Pyston-lite er der også udgivet en opdatering af den fulde Pyston-pakke 2.3.4, som introducerer nye optimeringer. I pyperformance testen er version 2.3.4 hurtigere end version 2.3.3 med ca. 6%. Den samlede præstationsgevinst sammenlignet med CPython vurderes til 66%.

Der skal også nævnes de optimeringer, der er udviklet som en del af udviklingscyklussen for CPython 3.11 i hovedprojektet, som i nogle tests har muliggjort en præstationsforøgelse på 25%. For eksempel er effektiviteten ved cachelagring af bytekode-tilstanden for basismodulerne forbedret i CPython 3.11, hvilket vil fremskynde scriptstarten med 10-15%. Funktionsopkald er blevet betydeligt hurtigere, og der er tilføjet specialiserede hurtige fortolkere til typiske operationer. Arbejdet med at overføre nogle optimeringer, der er blevet forberedt af projekterne Cinder og HotPy, fortsætter også.

Som en del af nogil-projektet arbejdes der også på en eksperimentel bygningstilstand for CPython uden global låsning af fortolkeren (GIL, Global Interpreter Lock), som forhindrer parallel adgang til delte objekter fra forskellige tråde, hvilket hindrer parallelisering af operationer på multicore-systemer. Som et andet løsningsforslag til GIL-problemet udvikles muligheden for at knytte en separat GIL til hver fortolker, der kører inden for en proces (flere fortolkere kan køre i én proces, men effektiviteten af deres parallelle udførelse er begrænset af GIL).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster