Pyston-lite, berhevkarek JIT-ê ji bo Python-a xwemalî destnîşan kir

Pêşdebirên projeya Pyston, ku pêkanîna performansa bilind a zimanê Python bi karanîna teknolojiyên berhevkirina JIT-ya nûjen pêşkêşî dike, pêvekek Pyston-lite bi pêkanîna berhevkarê JIT-ê ya CPython re pêşkêş kirin. Dema ku Pyston şaxek bingeha koda CPython-ê ye û ji hev veqetandî tête pêşve xistin, Pyston-lite wekî pêvekek gerdûnî hatî çêkirin ku ji bo girêdana bi wergêrê Python-ê standard (CPython) ve hatî çêkirin.

Pyston-lite destûrê dide te ku hûn teknolojiyên bingehîn ên Pyston bikar bînin bêyî guheztina wergêr, bi sazkirina pêvekek pêvek bi karanîna rêveberê pakêtê PIP an Conda. Pyston-lite jixwe di depoyên PyPI û Conda de mêvandar e û ji bo sazkirina wê, tenê fermana "pip install pyston_lite_autoload" an "conda install pyston_lite_autoload -c pyston" bimeşîne. Du pakêt têne pêşkêş kirin: pyston_lite (rasterast JIT) û pyston_lite_autoload (gava ku pêvajoya Python dest pê dike veguheztina JIT-a otomatîkî pêk tîne). Di heman demê de gengaz e ku meriv bêyî sazkirina modula barkirina otomatîkî, bi karanîna fonksiyona pyston_lite.enable() ve tevlêbûna JIT-ê ji serîlêdanê bi bernamekî kontrol bike.

Her çend Pyston-lite hemî xweşbîniyên ku li Pyston peyda dibin venagire, lê karanîna wê dikare bi qasî 10-25% performansê li gorî Python 3.8 bi rêkûpêk baştir bike. Di pêşerojê de, tê plan kirin ku piraniya xweşbîniyên ku li Pyston hene veguhezînin Pyston-lite, û her weha guhertoyên piştgirî yên CPython berfireh bikin (veberdana yekem tenê Python 3.8 piştgirî dike). Zêdetir planên gerdûnî hevkariya bi tîmê CPython re vedihewîne da ku API-yên nû ji bo JIT-ê bicîh bike, ku destûrê dide kontrola bêkêmasî li ser xebata Python. Tevlihevkirina guhertinên pêşniyarkirî di şaxê Python 3.12 de tê nîqaş kirin. Bi îdeal, îhtîmala veguheztina hemî fonksiyonê ji Pyston ber bi dirêjkirinê ve tê fikirîn, ku dê bihêle ku em ji parastina forka xweya CPython dûr bisekinin.

Ji bilî Pyston-lite, proje di heman demê de nûvekirinek ji pakêta Pyston 2.3.4-ê ya bêkêmasî re jî derxist, ku xweşbîniyên nû pêşkêşî dike. Di ceribandina pyperformance de, guhertoya 2.3.4 ji berdana 2.3.3 bi qasî 6% zûtir e. Qezenckirina performansa giştî li gorî CPython% 66 tê texmîn kirin.

Wekî din, em dikarin xweşbîniyên ku di çarçoveya pêşkeftina CPython 3.11 de di projeya sereke de hatine pêşve xistin, ku di hin ceribandinan de gengaz kiriye ku performansê% 25 zêde bike. Mînakî, di CPython 3.11 de karbidestiya cachkirina rewşa bytekodê ya modulên bingehîn zêde bûye, ku dê destpêkirina nivîsan bi 10-15% bileztir bike. Bangên fonksiyonê bi girîngî hatine bilez kirin û wergêrên bilez ên pispor ên karûbarên standard hatine zêdekirin. Di heman demê de xebat ji bo portkirina hin xweşbîniyên ku ji hêla projeyên Cinder û HotPy ve hatine amade kirin jî didomin.

Wekî din, di nav projeya nogil de, xebat li ser moda ceribandinê ya ji bo avakirina CPython bêyî kilîtkirina wergêrê gerdûnî (GIL, Global Interpreter Lock), ku rê nade gihandina paralel a tiştên hevpar ên ji mijarên cihêreng, ku rê li ber paralelkirina operasyonan li ser pirjimariyê digire. -sîstemên bingehîn. Wekî çareseriyek din a pirsgirêka GIL-ê, şiyana girêdana GILek veqetandî bi her wergêrek ku di hundurê pêvajoyek de dimeşe ve tête pêşdebirin (gelek wergêr dikarin di yek pêvajoyê de bêne xebitandin, lê karbidestiya pêkanîna wan a paralel bi GIL-ê ve girêdayî ye).

Source: opennet.ru

Add a comment