Pyston-lite, JIT compiler alang sa stock Python gipaila

Ang mga nag-develop sa proyekto sa Pyston, nga nagtanyag sa usa ka high-performance nga pagpatuman sa Python nga pinulongan nga naggamit sa modernong JIT compilation nga mga teknolohiya, nagpaila sa Pyston-lite extension uban sa pagpatuman sa usa ka JIT compiler alang sa CPython. Kung ang Pyston usa ka sanga sa CPython codebase ug gilain ang pag-uswag, nan ang Pyston-lite gidesinyo isip usa ka universal extension nga gidisenyo aron makonektar sa standard nga Python interpreter (CPython).

Gitugotan ka sa Pyston-lite nga gamiton ang sukaranang mga teknolohiya sa Pyston nga wala’y pagbag-o sa tighubad, pinaagi sa pag-install ug dugang nga extension gamit ang tagdumala sa pakete sa PIP o Conda. Ang Pyston-lite na-host na sa mga repositoryo sa PyPI ug Conda, ug aron ma-install, padagana lang ang command nga "pip install pyston_lite_autoload" o "conda install pyston_lite_autoload -c pyston". Duha ka pakete ang gisugyot: pyston_lite (direkta nga JIT) ug pyston_lite_autoload (naghimo ug awtomatikong pag-ilis sa JIT sa pagsugod sa proseso sa Python). Posible usab nga kontrolahon sa programa ang pagpagana sa JIT gikan sa sulod sa aplikasyon nga wala i-install ang module sa autoload, gamit ang function nga pyston_lite.enable().

Bisan kung ang Pyston-lite wala maglakip sa tanan nga mga pag-optimize nga magamit sa Pyston, ang paggamit niini nagtugot sa mga 10-25% nga pagpaayo sa pasundayag sa regular nga Python 3.8. Sa umaabot, nagplano kami nga i-port ang kadaghanan sa mga pag-optimize nga naa sa Pyston sa Pyston-lite, ingon man pagpalapad sa gisuportahan nga mga bersyon sa CPython (ang una nga pagpagawas nagsuporta lamang sa Python 3.8). Sa mas daghang global nga mga plano, adunay usa ka hiniusang trabaho sa CPython team sa pagpatuman sa mga bag-ong API alang sa JIT, nga nagtugot sa mas kompleto nga pagkontrol sa trabaho sa Python. Paghisgot sa paglakip sa gisugyot nga mga pagbag-o sa sanga sa Python 3.12. Sa tinuud, ang posibilidad sa pagbalhin sa tanan nga gamit gikan sa Pyston ngadto sa usa ka extension gikonsiderar, nga magtugot kanamo nga makalayo gikan sa pagpadayon sa among kaugalingon nga tinidor sa CPython.

Gawas pa sa Pyston-lite, ang proyekto nagpagawas usab og update sa bug-os nga Pyston 2.3.4 nga pakete, nga naglakip sa bag-ong mga pag-optimize. Sa pyperformance test, ang bersyon 2.3.4 mas paspas kay sa pagpagawas sa 2.3.3 sa mga 6%. Ang kinatibuk-ang nakuha sa performance sa CPython gibanabana sa 66%.

Dugang pa, mahimo natong timan-an ang mga pag-optimize nga naugmad sa balangkas sa siklo sa pag-uswag sa CPython 3.11 sa panguna nga proyekto, nga sa pipila nga mga pagsulay gitugotan kami nga madugangan ang pasundayag sa 25%. Pananglitan, sa CPython 3.11, ang kahusayan sa pag-cache sa estado sa bytecode sa mga base module gipauswag, nga makapadali sa paglansad sa mga script sa 10-15%. Ang mga tawag sa function labi nga gipadali ug gidugang ang mga espesyal nga paspas nga tighubad sa naandan nga operasyon. Nagpadayon usab ang pagtrabaho aron madala ang pipila ka mga pag-optimize nga giandam sa mga proyekto sa Cinder ug HotPy.

Dugang pa, sulod sa gambalay sa nogil nga proyekto, ang trabaho gisugdan sa usa ka eksperimento nga CPython build mode nga walay global interpreter lock (GIL, Global Interpreter Lock), nga wala magtugot sa parallel nga pag-access sa gipaambit nga mga butang gikan sa lainlaing mga hilo, nga makapugong sa parallelization sa mga operasyon. sa multi-core nga sistema. Ingon nga lain nga solusyon sa problema sa GIL, ang abilidad sa pagbugkos sa usa ka bulag nga GIL sa matag interpreter nga nagdagan sa sulod sa usa ka proseso gipalambo (daghang mga tighubad mahimong modagan sa usa ka proseso, apan ang pagka-epektibo sa ilang parehas nga pagpatuman naa sa GIL).

Source: opennet.ru

Idugang sa usa ka comment