Pyston-lite, JIT compiler para sa stock Python ipinakilala

Ang mga nag-develop ng proyekto ng Pyston, na nag-aalok ng mataas na pagganap na pagpapatupad ng wikang Python gamit ang mga modernong teknolohiya ng compilation ng JIT, ay nagpakita ng extension ng Pyston-lite na may pagpapatupad ng JIT compiler para sa CPython. Habang ang Pyston ay isang sangay ng CPython codebase at binuo nang hiwalay, ang Pyston-lite ay idinisenyo bilang isang unibersal na extension na idinisenyo upang kumonekta sa karaniwang Python interpreter (CPython).

Pinapayagan ka ng Pyston-lite na gamitin ang mga pangunahing teknolohiya ng Pyston nang hindi binabago ang interpreter, sa pamamagitan ng pag-install ng karagdagang extension gamit ang PIP o Conda package manager. Naka-host na ang Pyston-lite sa mga repositoryo ng PyPI at Conda at para mai-install ito, patakbuhin lang ang command na "pip install pyston_lite_autoload" o "conda install pyston_lite_autoload -c pyston". Dalawang pakete ang inaalok: pyston_lite (direktang JIT) at pyston_lite_autoload (gumaganap ng awtomatikong pagpapalit ng JIT kapag nagsimula ang proseso ng Python). Posible ring kontrolin ng programmatically ang pagsasama ng JIT mula sa application nang hindi ini-install ang autoload module, gamit ang pyston_lite.enable() function.

Bagama't hindi saklaw ng Pyston-lite ang lahat ng magagamit na pag-optimize sa Pyston, ang paggamit nito ay maaaring mapabuti ang pagganap ng humigit-kumulang 10-25% kumpara sa regular na Python 3.8. Sa hinaharap, pinlano na ilipat ang karamihan sa mga optimization na naroroon sa Pyston sa Pyston-lite, pati na rin palawakin ang mga sinusuportahang bersyon ng CPython (sinusuportahan lamang ng unang release ang Python 3.8). Kasama sa higit pang mga pandaigdigang plano ang pakikipagtulungan sa koponan ng CPython upang ipatupad ang mga bagong API para sa JIT, na nagbibigay-daan sa mas kumpletong kontrol sa gawain ng Python. Ang pagsasama ng mga iminungkahing pagbabago sa sangay ng Python 3.12 ay tinatalakay. Sa isip, ang posibilidad na ilipat ang lahat ng functionality mula sa Pyston papunta sa extension ay isinasaalang-alang, na magbibigay-daan sa amin upang maiwasan ang pagpapanatili ng aming sariling CPython fork.

Bilang karagdagan sa Pyston-lite, naglabas din ang proyekto ng update sa ganap na Pyston 2.3.4 package, na nag-aalok ng mga bagong optimization. Sa pyperformance test, ang bersyon 2.3.4 ay mas mabilis kaysa sa release 2.3.3 ng humigit-kumulang 6%. Ang kabuuang pagtaas ng pagganap kumpara sa CPython ay tinatantya sa 66%.

Bukod pa rito, mapapansin natin ang mga pag-optimize na binuo sa loob ng cycle ng pag-unlad ng CPython 3.11 sa pangunahing proyekto, na sa ilang mga pagsubok ay naging posible upang mapataas ang pagganap ng 25%. Halimbawa, sa CPython 3.11, ang kahusayan ng pag-cache ng estado ng bytecode ng mga pangunahing module ay nadagdagan, na magpapabilis sa paglulunsad ng mga script ng 10-15%. Ang mga function na tawag ay lubos na pinabilis at ang mga dalubhasang mabilis na interpreter ng mga karaniwang operasyon ay naidagdag. Nagsasagawa na rin ng trabaho para i-port ang ilang mga pag-optimize na inihanda ng mga proyekto ng Cinder at HotPy.

Bukod pa rito, sa loob ng nogil project, isinasagawa ang trabaho sa isang experimental mode para sa pagbuo ng CPython na walang global interpreter lock (GIL, Global Interpreter Lock), na hindi pinapayagan ang parallel na access sa mga shared object mula sa iba't ibang thread, na pumipigil sa parallelization ng mga operasyon sa multi - mga pangunahing sistema. Bilang isa pang solusyon sa problema ng GIL, ang kakayahang magbigkis ng isang hiwalay na GIL sa bawat interpreter na tumatakbo sa loob ng isang proseso ay binuo (ilang mga interpreter ay maaaring tumakbo sa isang proseso, ngunit ang kahusayan ng kanilang parallel na pagpapatupad ay nakasalalay sa GIL).

Pinagmulan: opennet.ru

Magdagdag ng komento