Qhia Pyston-lite, JIT compiler rau haiv neeg Python

Cov neeg tsim tawm ntawm Pyston qhov project, uas muaj kev ua tau zoo ntawm kev siv cov lus Python siv cov cuab yeej siv niaj hnub JIT tso ua ke, nthuav tawm Pyston-lite txuas ntxiv nrog kev siv JIT compiler rau CPython. Thaum Pyston yog ib ceg ntawm CPython codebase thiab tau tsim nyias, Pyston-lite yog tsim los ua ib qho kev nthuav dav dav tsim los txuas rau tus qauv Python txhais lus (CPython).

Pyston-lite tso cai rau koj siv cov thev naus laus zis Pyton yam tsis hloov tus neeg txhais lus, los ntawm kev txhim kho qhov txuas ntxiv siv PIP lossis Conda pob tus thawj tswj hwm. Pyston-lite twb tau tuav hauv PyPI thiab Conda repositories thiab rau nruab nws, tsuas yog khiav cov lus txib "pip install pyston_lite_autoload" lossis "conda install pyston_lite_autoload -c pyston". Muaj ob pob khoom: pyston_lite ( ncaj qha JIT) thiab pyston_lite_autoload (ua haujlwm hloov JIT tsis siv neeg thaum Python txheej txheem pib). Nws tseem tuaj yeem tswj hwm qhov kev suav nrog JIT los ntawm daim ntawv thov yam tsis muaj kev txhim kho autoload module, siv pyston_lite.enable() muaj nuj nqi.

Txawm hais tias Pyton-lite tsis npog tag nrho cov kev ua kom zoo tshaj plaws muaj nyob hauv Pyton, nws siv tuaj yeem txhim kho kev ua tau zoo los ntawm kwv yees li 10-25% piv rau Python 3.8 li niaj zaus. Nyob rau hauv lub neej yav tom ntej, nws yog npaj los hloov feem ntau ntawm qhov optimizations tam sim no nyob rau hauv Pyton rau Pyston-lite, nrog rau nthuav cov kev txhawb nqa versions ntawm CPython (thawj tso tawm tsuas yog txhawb nqa Python 3.8). Ntau cov phiaj xwm thoob ntiaj teb suav nrog kev koom tes nrog pab pawg CPython los siv APIs tshiab rau JIT, tso cai rau kev tswj hwm ntau dua ntawm kev ua haujlwm ntawm Python. Kev suav nrog cov kev hloov pauv hauv Python 3.12 ceg tau tham txog. Qhov zoo tshaj plaws, qhov ua tau ntawm kev txav txhua qhov kev ua haujlwm los ntawm Pston mus rau qhov txuas ntxiv tau raug txiav txim siab, uas yuav tso cai rau peb kom tsis txhob tuav peb tus kheej CPython diav rawg.

Ntxiv rau Pyton-lite, qhov project kuj tau tso tawm qhov hloov tshiab rau Pyton 2.3.4 pob tag nrho, uas muaj kev ua kom zoo dua qub. Hauv kev sim pyperformance, version 2.3.4 sai dua li tso tawm 2.3.3 txog 6%. Tag nrho kev ua tau zoo nce piv rau CPython yog kwv yees ntawm 66%.

Tsis tas li ntawd, peb tuaj yeem nco ntsoov qhov kev ua kom zoo tshaj plaws tsim nyob rau hauv CPython 3.11 kev loj hlob voj voog nyob rau hauv txoj haujlwm tseem ceeb, uas hauv qee qhov kev ntsuam xyuas ua rau nws muaj peev xwm nce kev ua tau zoo los ntawm 25%. Piv txwv li, hauv CPython 3.11, qhov ua tau zoo ntawm caching lub xeev bytecode ntawm cov qauv yooj yim tau nce, uas yuav ua kom cov ntawv xa tawm sai ntawm 10-15%. Kev hu xov tooj muaj nuj nqi tau nrawm nrawm thiab tshwj xeeb cov neeg txhais lus nrawm ntawm cov txheej txheem ua haujlwm tau ntxiv. Kev ua haujlwm tseem tab tom ua rau chaw nres nkoj qee qhov kev ua kom zoo tau npaj los ntawm Cinder thiab HotPy cov haujlwm.

Tsis tas li ntawd, nyob rau hauv qhov project nogil, kev ua haujlwm tab tom ua haujlwm ntawm kev sim hom rau kev tsim CPython yam tsis muaj lub ntiaj teb tus neeg txhais lus kaw (GIL, Ntiaj Teb Tus Txhais Lus Xauv), uas tsis tso cai rau tib lub sijhawm nkag mus rau cov khoom sib koom los ntawm cov xov sib txawv, uas tiv thaiv kev sib luag ntawm kev ua haujlwm ntawm ntau yam. - core systems. Raws li lwm txoj kev daws teeb meem rau GIL, lub peev xwm los khi ib qho GIL cais rau txhua tus neeg txhais lus ua haujlwm nyob rau hauv cov txheej txheem tau tsim (ntau tus neeg txhais lus tuaj yeem khiav hauv ib txheej txheem, tab sis qhov ua tau zoo ntawm lawv qhov kev ua tiav yog nyob ntawm GIL).

Tau qhov twg los: opennet.ru

Ntxiv ib saib