Pyston-lite, JIT alakojo fun iṣura Python ṣe

Awọn olupilẹṣẹ ti iṣẹ akanṣe Pyston, eyiti o funni ni imuse imuse ti o ga julọ ti ede Python nipa lilo awọn imọ-ẹrọ iṣakojọpọ igbalode JIT, gbekalẹ itẹsiwaju Pyston-lite pẹlu imuse ti olupilẹṣẹ JIT fun CPython. Lakoko ti Pyston jẹ ẹka ti koodu koodu CPython ati pe o ni idagbasoke lọtọ, Pyston-lite jẹ apẹrẹ bi itẹsiwaju gbogbo agbaye ti a ṣe lati sopọ si onitumọ Python boṣewa (CPython).

Pyston-lite gba ọ laaye lati lo awọn imọ-ẹrọ Pyston ipilẹ laisi iyipada onitumọ, nipa fifi afikun afikun sii nipa lilo oluṣakoso package PIP tabi Conda. Pyston-lite ti gbalejo tẹlẹ ni awọn ibi ipamọ PyPI ati Conda ati lati fi sii, kan ṣiṣẹ aṣẹ “pip fi pyston_lite_autoload” tabi “conda fi pyston_lite_autoload -c pyston sori ẹrọ”. Awọn idii meji ni a funni: pyston_lite (taara JIT) ati pyston_lite_autoload (ṣe iyipada JIT laifọwọyi nigbati ilana Python bẹrẹ). O tun ṣee ṣe lati ṣakoso iṣakoso eto ifisi ti JIT lati inu ohun elo laisi fifi sori ẹrọ module autoload, ni lilo iṣẹ pyston_lite.enable ().

Botilẹjẹpe Pyston-lite ko bo gbogbo awọn iṣapeye ti o wa ni Pyston, lilo rẹ le mu ilọsiwaju ṣiṣẹ nipasẹ isunmọ 10-25% ni akawe si Python 3.8 deede. Ni ọjọ iwaju, o ti gbero lati gbe pupọ julọ awọn iṣapeye ti o wa ni Pyston si Pyston-lite, bakannaa faagun awọn ẹya atilẹyin ti CPython (itusilẹ akọkọ ṣe atilẹyin Python 3.8 nikan). Awọn ero agbaye diẹ sii pẹlu ifowosowopo pẹlu ẹgbẹ CPython lati ṣe awọn API tuntun fun JIT, gbigba iṣakoso pipe diẹ sii lori iṣẹ Python. Ifisi ti awọn iyipada ti a dabaa ni ẹka Python 3.12 ti wa ni ijiroro. Bi o ṣe yẹ, o ṣeeṣe ti gbigbe gbogbo iṣẹ ṣiṣe lati Pyston sinu itẹsiwaju ni a gbero, eyiti yoo gba wa laaye lati yago fun mimu orita CPython tiwa.

Ni afikun si Pyston-lite, ise agbese na tun tu imudojuiwọn kan si package Pyston 2.3.4 ti o ni kikun, eyiti o funni ni awọn iṣapeye tuntun. Ninu idanwo pyperformance, ẹya 2.3.4 yiyara ju idasilẹ 2.3.3 nipasẹ nipa 6%. Ere iṣẹ gbogbogbo ti akawe si CPython jẹ ifoju ni 66%.

Ni afikun, a le ṣe akiyesi awọn iṣapeye ti o dagbasoke laarin ọna idagbasoke CPython 3.11 ninu iṣẹ akanṣe akọkọ, eyiti ninu diẹ ninu awọn idanwo jẹ ki o ṣee ṣe lati mu iṣẹ pọ si nipasẹ 25%. Fun apẹẹrẹ, ni CPython 3.11, ṣiṣe ti caching ipo bytecode ti awọn modulu ipilẹ ti pọ si, eyiti yoo mu ifilọlẹ awọn iwe afọwọkọ pọ si nipasẹ 10-15%. Awọn ipe iṣẹ ti ni iyara pupọ ati pe a ti ṣafikun awọn onitumọ iyara amọja ti awọn iṣẹ ṣiṣe boṣewa. Iṣẹ tun nlọ lọwọ lati gbe diẹ ninu awọn iṣapeye ti a pese sile nipasẹ awọn iṣẹ akanṣe Cinder ati HotPy.

Ni afikun, laarin iṣẹ akanṣe nogil, iṣẹ ti nlọ lọwọ lori ipo idanwo fun kikọ CPython laisi titiipa onitumọ agbaye (GIL, Titiipa Onitumọ Agbaye), eyiti ko gba laaye ni afiwe si awọn nkan ti o pin lati awọn okun oriṣiriṣi, eyiti o ṣe idiwọ isọdọkan ti awọn iṣẹ lori ọpọlọpọ -mojuto awọn ọna šiše. Gẹgẹbi ojutu miiran si iṣoro GIL, agbara lati di GIL lọtọ si olutumọ kọọkan ti nṣiṣẹ laarin ilana kan ni idagbasoke (ọpọlọpọ awọn onitumọ le ṣiṣẹ ni ilana kan, ṣugbọn ṣiṣe ti ipaniyan ti o jọra da lori GIL).

orisun: opennet.ru

Fi ọrọìwòye kun