Pyston-lite, жергиликтүү Python үчүн JIT компилятору киргизилген

Заманбап JIT компиляция технологияларын колдонуу менен Python тилин жогорку натыйжалуу ишке ашырууну сунуш кылган Pyston долбоорун иштеп чыгуучулар CPython үчүн JIT компиляторунун ишке ашырылышы менен Pyston-lite кеңейтүүсүн көрсөтүштү. Pyston CPython код базасынын бир бутагы болуп саналат жана өзүнчө иштелип чыккан, ал эми Pyston-lite стандарттуу Python котормочу (CPython) менен туташуу үчүн иштелип чыккан универсалдуу кеңейтүү катары иштелип чыккан.

Pyston-lite PIP же Conda пакет менеджерин колдонуу менен кошумча кеңейтүүнү орнотуу менен котормочуну өзгөртпөстөн негизги Pyston технологияларын колдонууга мүмкүндүк берет. Pyston-lite мурунтан эле PyPI жана Conda репозиторийлеринде жайгаштырылган жана орнотуу үчүн жөн гана "pip install pyston_lite_autoload" же "conda install pyston_lite_autoload -c pyston" буйругун аткарыңыз. Эки топтом сунушталат: pyston_lite (JIT түз) жана pyston_lite_autoload (Python процессин баштаганда автоматтык түрдө JIT алмаштырууну жасайт). Ошондой эле pyston_lite.enable() функциясын колдонуп, автожүктөө модулун орнотпостон, колдонмонун ичинен JITти иштетүүнү программалык түрдө башкарууга болот.

Pyston-lite Pystonдо жеткиликтүү болгон бардык оптималдаштырууну камтыбаса да, аны колдонуу кадимки Python 10ге салыштырмалуу аткарууну болжол менен 25-3.8% жакшыртат. Келечекте Pystonдо болгон оптималдаштыруулардын көбүн Pyston-liteге өткөрүү, ошондой эле CPythonдун колдоого алынган версияларын кеңейтүү пландаштырылууда (биринчи релиз Python 3.8ди гана колдойт). Көбүрөөк глобалдуу пландар JIT үчүн жаңы APIлерди ишке ашыруу үчүн CPython командасы менен кызматташууну камтыйт, бул Python ишин толугураак көзөмөлдөөгө мүмкүндүк берет. Python 3.12 бутагына сунушталган өзгөртүүлөрдү киргизүү талкууланууда. Идеалында, бардык функцияларды Pystonдон кеңейтүүгө жылдыруу мүмкүнчүлүгү каралууда, бул бизге CPython айрысын сактап калуудан качууга мүмкүндүк берет.

Pyston-liteден тышкары, долбоор жаңы оптималдаштырууну сунуш кылган толук кандуу Pyston 2.3.4 пакетинин жаңыртуусун чыгарды. Pyperformance тестинде 2.3.4 версиясы 2.3.3 релизинен 6% га тезирээк. CPython менен салыштырганда жалпы натыйжалуулук 66% га бааланат.

Кошумчалай кетсек, негизги долбоордо CPython 3.11 иштеп чыгуу циклинин алкагында иштелип чыккан оптималдаштырууларды белгилей кетсек болот, алар кээ бир сыноолордо өндүрүмдүүлүктү 25% га жогорулатууга мүмкүндүк берген. Мисалы, CPython 3.11де базалык модулдардын байт-код абалын кэштөөнүн эффективдүүлүгү жогорулады, бул скрипттерди ишке киргизүүнү 10-15% тездетүүгө мүмкүндүк берет. Функцияларды чакыруу кыйла тездетилди жана стандарттуу операциялардын адистештирилген тез котормочулары кошулду. Cinder жана HotPy долбоорлору тарабынан даярдалган кээ бир оптималдаштырууларды өткөрүү боюнча иштер да жүрүп жатат.

Кошумчалай кетсек, nogil долбоорунун алкагында CPythonду глобалдык котормочу кулпусуз (GIL, Global Interpreter Lock) куруунун эксперименталдык режими боюнча иштер жүрүп жатат, ал ар кандай жиптерден бөлүшүлгөн объекттерге параллелдүү кирүүгө мүмкүндүк бербейт, бул көп тармактагы операцияларды параллелизациялоого жол бербейт. - негизги системалар. GIL маселесинин дагы бир чечими катары процесстин ичинде иштеген ар бир интерпретаторго өзүнчө GIL туташтыруу мүмкүнчүлүгү иштелип жатат (бир процессте бир нече интерпретатор иштеши мүмкүн, бирок алардын параллелдүү аткарылышынын натыйжалуулугу GILден көз каранды).

Source: opennet.ru

Комментарий кошуу