Pyston նախագիծը, որն առաջարկում է Python-ին JIT կոմպիլյատորով, վերադարձել է բաց զարգացման մոդելի

Pyston նախագծի մշակողները, որն առաջարկում է Python լեզվի բարձր կատարողական իրականացում, օգտագործելով ժամանակակից JIT կոմպիլյացիոն տեխնոլոգիաները, ներկայացրել են Pyston 2.2-ի նոր թողարկումը և հայտարարել նախագծի բաց կոդով վերադարձի մասին: Իրականացումը նպատակ ունի հասնել բարձր կատարողականության, որը մոտ է ավանդական համակարգի լեզուներին, ինչպիսին է C++-ը: Pyston 2 մասնաճյուղի ծածկագիրը հրապարակվում է GitHub-ում PSFL (Python Software Foundation License) համաձայն՝ CPython լիցենզիայի նման:

Հիշենք, որ Pyston նախագիծը նախկինում վերահսկվում էր Dropbox-ի կողմից, որը դադարեցրեց զարգացման ֆինանսավորումը 2017 թվականին։ Pyston-ի մշակողները հիմնեցին իրենց ընկերությունը և թողարկեցին զգալիորեն վերափոխված Pyston 2 մասնաճյուղը, որը հայտարարվեց կայուն և պատրաստ լայնածավալ օգտագործման համար: Միևնույն ժամանակ, մշակողները դադարեցրին սկզբնական կոդը հրապարակելը և անցան միայն երկուական հավաքների տրամադրմանը։ Այժմ որոշվել է Pyston-ը կրկին դարձնել բաց կոդով նախագիծ և ընկերությունը տեղափոխել բիզնես մոդել՝ կապված բաց կոդով ծրագրային ապահովման մշակման հետ։ Ավելին, դիտարկվում է օպտիմալացումները Pyston-ից ստանդարտ CPython-ին փոխանցելու հնարավորությունը։

Նշվում է, որ Pyston 2.2-ը 30%-ով ավելի արագ է, քան ստանդարտ Python-ը կատարողականության թեստերում, որոնք գնահատում են վեբ սերվերի հավելվածներին բնորոշ բեռները: Կա նաև Pyston 2.2-ի կատարողականի զգալի աճ՝ համեմատած նախորդ թողարկումների հետ, ինչը ձեռք է բերվել հիմնականում նոր տարածքների համար օպտիմալացումների ավելացման, ինչպես նաև JIT-ի և քեշավորման մեխանիզմների բարելավման շնորհիվ:

Բացի կատարողականի օպտիմալացումներից, նոր թողարկումը նաև հետաքրքիր է, քանի որ այն կրում է փոփոխություններ CPython 3.8.8 մասնաճյուղից: Մայրենի Python-ի հետ համատեղելիության առումով Pyston նախագիծը ներկայացվում է որպես CPython-ի հետ առավել համատեղելի այլընտրանքային իրականացում, քանի որ Pyston-ը պատառաքաղ է հիմնական CPython կոդերի բազայից: Pyston-ն աջակցում է CPython-ի բոլոր հնարավորություններին, ներառյալ C API-ն՝ C լեզվով ընդլայնումներ մշակելու համար: Pyston-ի և CPython-ի հիմնական տարբերությունների թվում են DynASM JIT-ի օգտագործումը, ներկառուցված քեշավորումը և ընդհանուր օպտիմալացումները:

Pyston 2.2-ի փոփոխությունների թվում նշվում է նաև կոդերի բազայի մաքրումը CPython-ի բազմաթիվ կարգաբերման հնարավորություններից, որոնք բացասաբար են անդրադառնում աշխատանքի վրա, բայց գրեթե պահանջված չեն մշակողների շրջանում: Տրված է վիճակագրություն, ըստ որի՝ վրիպազերծման գործիքների հեռացումը հանգեցնում է 2% արագացման, չնայած այն հանգամանքին, որ մշակողների միայն մոտ 2%-ն է օգտագործում այդ գործառույթները:

Source: opennet.ru

Добавить комментарий