Pyston-lite, JIT compiler yestock Python yakaunzwa

Vagadziri vepurojekiti yePyston, iyo inopa kuita kwepamusoro-kuita kwemutauro wePython vachishandisa tekinoroji yemazuva ano yeJIT, vakapa iyo Pyston-lite yekuwedzera nekuitwa kweJIT compiler yeCPython. Nepo Pyston iri bazi reCPython codebase uye yakagadziriswa yakaparadzana, Pyston-lite yakagadzirirwa sewedzero yepasirese yakagadzirirwa kubatana kune yakajairwa Python muturikiri (CPython).

Pyston-lite inokutendera kuti ushandise tekinoroji yePyston pasina kushandura muturikiri, nekuisa imwe yekuwedzera uchishandisa PIP kana Conda package maneja. Pyston-lite yakatogarwa muPyPI neConda repositori uye kuti uiise, ingo mhanyisa murairo "pip install pyston_lite_autoload" kana "conda install pyston_lite_autoload -c pyston". Mapakeji maviri anopihwa: pyston_lite (yakananga JIT) uye pyston_lite_autoload (inoita otomatiki JIT kutsiva kana Python process yatanga). Izvo zvakare zvinogoneka kuronga kudzora kuisirwa kweJIT kubva pachishandiso pasina kuisa iyo autoload module, uchishandisa iyo pyston_lite.enable () basa.

Kunyangwe Pyston-lite isingavharise zvese zvinogoneka zviripo muPyston, kushandiswa kwayo kunogona kuvandudza mashandiro neanenge 10-25% zvichienzaniswa neyakajairwa Python 3.8. Mune ramangwana, zvakarongwa kuendesa akawanda ekugadzirisa aripo muPyston kuenda kuPyston-lite, pamwe nekuwedzera shanduro dzinotsigirwa dzeCPython (yekutanga kuburitswa inotsigira Python 3.8 chete). Zvimwe zvirongwa zvepasi rose zvinosanganisira kubatana nechikwata cheCPython kuita maAPI matsva eJIT, zvichibvumira kutonga kwakazara pabasa rePython. Kubatanidzwa kwezvakarongwa shanduko mubazi rePython 3.12 kuri kukurukurwa. Nenzira yakanaka, mukana wekufambisa mashandiro ese kubva kuPyston kupinda muwedzero uri kutariswa, izvo zvinotitendera kuti tidzivise kuchengetedza yedu CPython forogo.

Pamusoro pePyston-lite, chirongwa ichi chakaburitsawo chigadziriso kune yakazara-yakazara Pyston 2.3.4 package, iyo inopa optimizations nyowani. Muyedzo yepyperformance, vhezheni 2.3.4 inokurumidza kupfuura kuburitsa 2.3.3 ne6%. Kuwanda kwekuita kwekuita kuenzaniswa neCPython kunofungidzirwa pa66%.

Pamusoro pezvo, isu tinogona kucherechedza magadzirirwo akagadzirwa mukati meCPython 3.11 yekuvandudza kutenderera mupurojekiti huru, iyo mune dzimwe bvunzo yakaita kuti zvikwanise kuwedzera kuita ne25%. Semuenzaniso, muCPython 3.11, kugona kwecaching iyo bytecode mamiriro emamodules ekutanga akawedzera, izvo zvichakurumidza kuvhurwa kwezvinyorwa ne10-15%. Kufona kwekuita kwakakwidziridzwa zvakanyanya uye vaturikiri vane hunyanzvi hwekuita zvakajairwa vakawedzerwa. Basa ririkuenderera mberi kuendesa mamwe magadzirirwo akagadzirirwa neCinder uye HotPy mapurojekiti.

Pamusoro pezvo, mukati meiyo nogil purojekiti, basa ririkuenderera mberi pane yekuyedza nzira yekuvaka CPython isina muturikiri wepasirese kukiya (GIL, Global Interpreter Lock), iyo isingatenderi kuwana kwakafanana kune zvakagovaniswa zvinhu kubva kune akasiyana tambo, izvo zvinodzivirira kufanana kwekushanda pane akawanda. -core systems. Seimwe mhinduro kudambudziko reGIL, kugona kusunga GIL yakaparadzana kune mumwe nemumwe muturikiri ari kushanda mukati memaitiro ari kugadzirwa (vaturikiri vakati wandei vanogona kunge vachimhanya mukuita kumwe, asi kugona kwekuita kwavo kwakafanana kunoenderana neGIL).

Source: opennet.ru

Voeg