Муаррифии Pyston-lite, як компилятори JIT барои Python модарӣ

Таҳиягарони лоиҳаи Pyston, ки татбиқи баландсифати забони Python-ро бо истифода аз технологияҳои муосири компиляцияи JIT пешниҳод мекунад, васеъшавии Pyston-lite-ро бо татбиқи компилятори JIT барои CPython пешниҳод карданд. Дар ҳоле, ки Pyston як шохаи пойгоҳи коди CPython аст ва алоҳида таҳия шудааст, Pyston-lite ҳамчун васеъшавии универсалӣ тарҳрезӣ шудааст, ки барои пайвастшавӣ ба тарҷумони стандартии Python (CPython) пешбинӣ шудааст.

Pyston-lite ба шумо имкон медиҳад, ки технологияҳои асосии Pystonро бидуни тағир додани тарҷумон бо насби васеъкунии иловагӣ бо истифода аз мудири бастаи PIP ё Conda истифода баред. 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-ро дастгирӣ мекунад). Нақшаҳои глобалии бештар ҳамкорӣ бо дастаи CPython барои татбиқи API-ҳои нав барои JIT, имкон медиҳанд, ки назорати пурраи кори 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 вобаста аст).

Манбаъ: opennet.ru

Илова Эзоҳ