Cyflwynwyd Pyston-lite, casglwr JIT ar gyfer stoc Python

Mae datblygwyr prosiect Pyston, sy'n cynnig gweithrediad perfformiad uchel o'r iaith Python sy'n defnyddio technolegau casglu JIT modern, wedi cyflwyno'r estyniad Pyston-lite gyda gweithrediad casglwr JIT ar gyfer CPython. Os yw Pyston yn gangen o sylfaen cod CPython ac yn datblygu ar wahân, yna mae Pyston-lite wedi'i gynllunio fel estyniad cyffredinol a gynlluniwyd i gysylltu â'r dehonglydd Python rheolaidd (CPython).

Mae Pyston-lite yn caniatáu ichi ddefnyddio technolegau sylfaenol Pyston heb newid y cyfieithydd, trwy osod estyniad ychwanegol gan ddefnyddio'r rheolwr pecyn PIP neu Conda. Mae Pyston-lite eisoes yn cael ei gynnal yn y storfeydd PyPI a Conda, ac i osod, dim ond rhedeg y gorchymyn "pip install pyston_lite_autoload" neu "conda install pyston_lite_autoload -c pyston". Awgrymir dau becyn: pyston_lite (JIT yn uniongyrchol) a pyston_lite_autoload (yn gwneud amnewid JIT yn awtomatig wrth gychwyn proses Python). Mae hefyd yn bosibl rheoli galluogi JIT yn rhaglennol o'r tu mewn i'r rhaglen heb osod y modiwl llwytho awtomatig, gan ddefnyddio'r swyddogaeth pyston_lite.enable().

Er nad yw Pyston-lite yn cwmpasu'r holl optimeiddiadau sydd ar gael yn Pyston, mae ei ddefnyddio'n caniatáu tua 10-25% o welliannau perfformiad dros Python 3.8 rheolaidd. Yn y dyfodol, rydym yn bwriadu trosglwyddo'r rhan fwyaf o'r optimizations sy'n bresennol yn Pyston i Pyston-lite, yn ogystal ag ehangu'r fersiynau a gefnogir o CPython (mae'r datganiad cyntaf yn cefnogi Python 3.8 yn unig). O'r cynlluniau mwy byd-eang, mae gwaith ar y cyd â thîm CPython ar weithredu APIs newydd ar gyfer JIT, sy'n caniatáu rheolaeth fwy cyflawn dros waith Python. Trafod cynnwys y newidiadau arfaethedig yng nghangen Python 3.12. Yn ddelfrydol, ystyrir y posibilrwydd o drosglwyddo'r holl swyddogaethau o Pyston i estyniad, a fydd yn ein galluogi i ddianc rhag cynnal ein fforc o CPython ein hunain.

Yn ogystal â Pyston-lite, rhyddhaodd y prosiect hefyd ddiweddariad i'r pecyn Pyston 2.3.4 llawn, sy'n cynnwys optimeiddiadau newydd. Yn y prawf pyperformance, mae fersiwn 2.3.4 yn gyflymach na rhyddhau 2.3.3 tua 6%. Amcangyfrifir bod y cynnydd perfformiad cyffredinol dros CPython yn 66%.

Yn ogystal, gallwn nodi'r optimizations a ddatblygwyd yn fframwaith y cylch datblygu CPython 3.11 yn y prif brosiect, a oedd yn caniatáu i ni mewn rhai profion gynyddu perfformiad 25%. Er enghraifft, yn CPython 3.11, mae effeithlonrwydd caching cyflwr y bytecode o fodiwlau sylfaen wedi'i wella, a fydd yn cyflymu lansiad sgriptiau 10-15%. Mae galwadau ffwythiant wedi'u cyflymu'n sylweddol ac mae dehonglwyr cyflym arbenigol o weithrediadau nodweddiadol wedi'u hychwanegu. Mae gwaith hefyd ar y gweill i drosglwyddo rhai o'r optimeiddiadau a baratowyd gan y prosiectau Cinder a HotPy.

Yn ogystal, o fewn fframwaith y prosiect nogil, mae gwaith yn mynd rhagddo ar ddull adeiladu CPython arbrofol heb glo cyfieithydd byd-eang (GIL, Global Interpreter Lock), nad yw'n caniatáu mynediad cyfochrog i wrthrychau a rennir o wahanol edafedd, sy'n atal gweithrediadau rhag cydredeg. ar systemau aml-graidd. Fel ateb arall i’r broblem gyda’r GIL, mae’r gallu i glymu GIL ar wahân i bob cyfieithydd sy’n rhedeg y tu mewn i broses yn cael ei ddatblygu (gall sawl cyfieithydd fod yn rhedeg mewn un broses, ond mae effeithiolrwydd eu gweithrediad cyfochrog yn dibynnu ar y GIL).

Ffynhonnell: opennet.ru

Ychwanegu sylw