I-Pyston-lite, i-JIT compiler yesitoko sePython yethulwe

Abathuthukisi bephrojekthi ye-Pyston, enikeza ukuqaliswa kokusebenza okuphezulu kolimi lwePython besebenzisa ubuchwepheshe besimanje bokuhlanganisa i-JIT, bethule isandiso se-Pyston-lite ngokuqaliswa kwe-JIT compiler ye-CPython. Ngenkathi i-Pyston iyigatsha le-codebase ye-CPython futhi ithuthukiswa ngokuhlukana, i-Pyston-lite yakhelwe njengesandiso samazwe ngamazwe esiklanyelwe ukuxhuma kumhumushi ojwayelekile we-Python (CPython).

I-Pyston-lite ikuvumela ukuthi usebenzise ubuchwepheshe obuyisisekelo be-Pyston ngaphandle kokushintsha umhumushi, ngokufaka isandiso esengeziwe usebenzisa umphathi wephakheji we-PIP noma we-Conda. I-Pyston-lite isivele isingathwe endaweni yokugcina i-PyPI ne-Conda futhi ukuyifaka, vele usebenzise umyalo othi "pip install pyston_lite_autoload" noma "conda install pyston_lite_autoload -c pyston". Kunikezwa amaphakheji amabili: i-pyston_lite (ngokuqondile i-JIT) ne-pyston_lite_autoload (yenza ukufaka esikhundleni se-JIT okuzenzakalelayo lapho inqubo yePython iqala). Kungenzeka futhi ukulawula ngokohlelo ukufakwa kwe-JIT kusuka kuhlelo lokusebenza ngaphandle kokufaka imojula yokulayisha okuzenzakalelayo, usebenzisa umsebenzi we-pyston_lite.enable().

Nakuba i-Pyston-lite ingafaki konke ukulungiselelwa okutholakala ku-Pyston, ukusetshenziswa kwayo kungathuthukisa ukusebenza cishe ngo-10-25% uma kuqhathaniswa nePython 3.8 evamile. Ngokuzayo, kuhlelwe ukudlulisa okuningi kokulungiswa okukhona ku-Pyston kuya ku-Pyston-lite, kanye nokwandisa izinguqulo ezisekelwayo ze-CPython (ukukhululwa kokuqala kusekela kuphela i-Python 3.8). Izinhlelo eziningi zomhlaba zihlanganisa ukusebenzisana nethimba le-CPython ukuze kusetshenziswe ama-API amasha e-JIT, okuvumela ukulawula okuphelele emsebenzini wePython. Kudingidwa ukufakwa kwezinguquko ezihlongozwayo egatsheni lePython 3.12. Ngokufanelekile, ithuba lokuhambisa konke ukusebenza kusuka ku-Pyston kuya esandisweni kuyacatshangelwa, okuzosivumela ukuba sigweme ukugcina imfoloko yethu ye-CPython.

Ngokungeziwe ku-Pyston-lite, iphrojekthi iphinde yakhipha isibuyekezo sephakheji eligcwele le-Pyston 2.3.4, elihlinzeka ngokulungiswa okusha. Ekuhlolweni kwe-pyperformance, inguqulo engu-2.3.4 ishesha kunokukhululwa kwe-2.3.3 cishe ngo-6%. Inzuzo yokusebenza iyonke uma iqhathaniswa ne-CPython ilinganiselwa ku-66%.

Ukwengeza, singaqaphela ukuthuthukiswa okuthuthukisiwe ngaphakathi komjikelezo wokuthuthukiswa we-CPython 3.11 kuphrojekthi enkulu, okuthe kwezinye izivivinyo kwenze kwaba nokwenzeka ukwandisa ukusebenza ngo-25%. Isibonelo, ku-CPython 3.11 ukusebenza kahle kokugcinwa kwesikhashana kwe-bytecode isimo samamojula ayisisekelo kuye kwanda, okuzosheshisa ukwethulwa kwemibhalo ngo-10-15%. Amakholi omsebenzi asheshiswe kakhulu futhi kwanezelwa otolika abakhethekile abasheshayo bemisebenzi evamile. Umsebenzi uyaqhubeka futhi wokufaka okunye ukulungiselelwa okulungiselelwe iphrojekthi ye-Cinder ne-HotPy.

Ukwengeza, ngaphakathi kwephrojekthi ye-nogil, umsebenzi uyaqhubeka kumodi yokuhlola yokwakha i-CPython ngaphandle kokukhiya umhumushi womhlaba wonke (i-GIL, i-Global Interpreter Lock), engavumeli ukufinyelela okufanayo ezintweni ezabiwe ezivela emicu ehlukene, evimbela ukufana kokusebenza ku-multi -core systems. Njengesinye isixazululo senkinga ye-GIL, ikhono lokuhlanganisa i-GIL ehlukile kumhumushi ngamunye osebenza ngaphakathi kwenqubo liyathuthukiswa (otolika abambalwa bangase basebenze ngenqubo eyodwa, kodwa ukusebenza kahle kokusetshenziswa kwabo okufanayo kuncike ku-GIL).

Source: opennet.ru

Engeza amazwana