I-Pyston-lite, i-JIT compiler ye-stock Python yaziswa

Abaphuhlisi beprojekthi yePyston, ebonelela ngokuphunyezwa kokusebenza okuphezulu kolwimi lwePython kusetyenziswa itekhnoloji yokuhlanganiswa kweJIT yanamhlanje, thaca ulwandiso lwePyston-lite ngokuphunyezwa kweJIT compiler yeCPython. Ngelixa i-Pyston isebe le-CPython codebase kwaye iphuhliswe ngokwahlukileyo, i-Pyston-lite yenzelwe njengokwandiswa kwendawo yonke eyenzelwe ukuxhuma kwitoliki eqhelekileyo yePython (CPython).

I-Pyston-lite ikuvumela ukuba usebenzise iteknoloji yePyston eyisiseko ngaphandle kokutshintsha itoliki, ngokufaka ulwandiso olongezelelweyo usebenzisa iPIP okanye umphathi wephakheji yeConda. I-Pyston-lite sele ibanjwe kwindawo yokugcina i-PyPI kunye ne-Conda kwaye ukuyifaka, sebenzisa nje umyalelo othi "pip install pyston_lite_autoload" okanye "conda install pyston_lite_autoload -c pyston". Iiphakheji ezimbini zinikezelwa: i-pyston_lite (ngqo nge-JIT) kunye ne-pyston_lite_autoload (yenza ukutshintshwa kwe-JIT ngokuzenzekelayo xa inkqubo yePython iqala). Kuyenzeka kwakhona ukulawula ngokwenkqubo ukubandakanywa kweJIT kwisicelo ngaphandle kokufaka imodyuli yokulayisha ngokuzenzekelayo, usebenzisa i-pyston_lite.enable () umsebenzi.

Nangona i-Pyston-lite ingayifaki yonke i-optimizations ekhoyo kwi-Pyston, ukusetyenziswa kwayo kunokuphucula ukusebenza malunga ne-10-25% xa kuthelekiswa nePython 3.8 eqhelekileyo. Kwixesha elizayo, kucetywayo ukudlulisa uninzi lwezinto eziphuculweyo ezikhoyo kwiPyston ukuya kwiPyston-lite, kunye nokwandisa iinguqulelo ezixhaswayo zeCPython (ukukhululwa kokuqala kuxhasa kuphela iPython 3.8). Izicwangciso ezininzi zehlabathi zibandakanya intsebenziswano kunye neqela leCPython ukuphumeza ii-API ezintsha ze-JIT, ukuvumela ukulawula okupheleleyo komsebenzi wePython. Ukubandakanywa kotshintsho olucetywayo kwisebe lePython 3.12 kuxoxwa ngalo. Ngokufanelekileyo, ukukwazi ukuhambisa yonke imisebenzi esuka kwiPyston ukuya ekwandisweni kuqwalaselwa, okuya kusivumela ukuba sigweme ukugcina i-CPython ifolokhwe yethu.

Ukongeza kwiPyston-lite, le projekthi iphinde yakhupha uhlaziyo kwiphakheji epheleleyo yePyston 2.3.4, ebonelela ngezinto ezintsha. Kuvavanyo lwe-pyperformance, inguqulo ye-2.3.4 ikhawuleza kunokukhululwa kwe-2.3.3 malunga ne-6%. Inzuzo yokusebenza ngokubanzi xa kuthelekiswa neCPython iqikelelwa kwi-66%.

Ukongezelela, sinokuqaphela ukulungiswa okuphuhliswe ngaphakathi komjikelezo wophuhliso lweCPython 3.11 kwiprojekthi ephambili, apho kwezinye iimvavanyo zenza ukuba kube lula ukwandisa ukusebenza nge-25%. Ngokomzekelo, kwi-CPython 3.11, ukusebenza kakuhle kwe-caching ye-bytecode state yeemodyuli ezisisiseko kuye kwanda, okuya kukhawulezisa ukuqaliswa kwezikripthi nge-10-15%. Iifowuni zokusebenza ziye zakhawuleziswa kakhulu kwaye iitoliki ezikhawulezayo ezikhethekileyo zemisebenzi eqhelekileyo yongeziwe. Umsebenzi uyaqhubeka wokufaka ulungiselelo oluthile olulungiselelwe yiCinder kunye neeprojekthi zeHotPy.

Ukongeza, ngaphakathi kweprojekthi ye-nogil, umsebenzi uyaqhubeka kwindlela yokulinga yokwakha i-CPython ngaphandle kokutshixa itoliki yehlabathi (i-GIL, i-Global Interpreter Lock), engavumeli ukufikelela okufanayo kwizinto ekwabelwana ngazo ukusuka kwimicu eyahlukeneyo, ethintela ukuhambelana kwemisebenzi kwiintlobo ezininzi. -iinkqubo ezingundoqo. Njengesinye isisombululo kwingxaki ye-GIL, ukukwazi ukubopha i-GIL eyahlukileyo kwitoliki nganye esebenzayo ngaphakathi kwenkqubo iyaphuhliswa (iitoliki ezininzi zinokusebenza kwinkqubo enye, kodwa ukusebenza kakuhle kokusetyenziswa kwazo okufanayo kuxhomekeke kwi-GIL).

umthombo: opennet.ru

Yongeza izimvo