Lẹhin hiatus ọdun mẹta ni idagbasoke, ifilole iṣẹ Pyston 2 ti tẹjade, kini mo dagbasokesi imuse iṣẹ giga ti ede Python lilo awọn idagbasoke ti iṣẹ LLVM.
Imuse naa duro fun lilo awọn imọ ẹrọ akopọ JIT igbalode ati awọn ifọkansi lati ṣaṣeyọri iṣẹ giga ti o jọra si awọn ede eto ibile bi C ++.
Koodu lati awọn ẹya ti tẹlẹ nipasẹ Pyston pin kakiri labẹ iwe-aṣẹ Apache, ṣugbọn koodu Pyston 2 ko tii wa ati pe awọn ile ti o ṣetan lati lo nikan ni a tu silẹ fun Ubuntu 18.04 ati 20.04 (faili kan pẹlu koodu wa fun gbigba lati ayelujara ṣugbọn abuku nikan pẹlu alaye ti iṣẹ na tun ti pari) .
Sita koodu jẹ apakan ti awọn igbero awọn oludagbasokeṣugbọn eyi yoo ṣee ṣe lẹhin ti o ti pari iṣeto awoṣe awoṣe iṣowo ti ile-iṣẹ tuntun ati pe o pinnu lati tẹsiwaju idagbasoke Pyston laisi atilẹyin owo ti Dropbox.
Nipa Pyston 2
Ko dabi awọn ẹya ti tẹlẹ, Pyston 2 ti samisi iduroṣinṣin ati kii ṣe bi ẹya idanwo kan. Ọpọlọpọ iṣẹ ti ṣe lati mu iṣẹ ṣiṣe dara julọ ati pe Pyston 2 yarayara ju Python 3.8 atilẹba lọ nipa nipa 20% ti o kọja suite idanwo python-macrobenchmarks.
Awọn anfani iṣẹ ṣiṣe ti o ṣe pataki julọ ni a rii ninu awọn iṣẹ ṣiṣe ohun elo wẹẹbu atorunwa. Ni awọn idanwo lọtọ bi chaos.py ati nbody.py, Pyston 2 ṣe afihan Python 3.8 nipasẹ ifosiwewe ti 2. Iye owo lilo JIT jẹ ilosoke diẹ ninu agbara iranti.
A ni igbadun pupọ lati tu silẹ Pyston v2, imuse iyara ati ibaramu giga ti ede siseto Python. Ẹya 2 jẹ 20% yiyara ju Python 3.8 boṣewa lọ ninu awọn aami macrobenchmarks wa. Ti o ṣe pataki julọ, o ṣee ṣe yiyara ninu koodu rẹ. Pyston v2 le dinku awọn idiyele olupin, dinku awọn idaduro olumulo, ati mu iṣelọpọ iṣelọpọ ṣiṣẹ.
Pyston v2 rọrun lati ṣe, nitorinaa ti o ba n wa iṣẹ Python ti o dara julọ, a ni iṣeduro pe ki o gba iṣẹju marun ki o fun Pyston ni igbiyanju. Ṣiṣe bẹ jẹ ọkan ninu awọn ọna ti o rọrun julọ lati yara iyara iṣẹ rẹ.
Ni awọn ofin ibamu pẹlu Python abinibi, iṣẹ akanṣe Pyston ti wa ni touted bi imukuro yiyan ibaramu to pọ julọ fun CPython, niwon Pyston jẹ orita ti akọkọ CPython codebase.
pisitini ṣe atilẹyin gbogbo awọn iṣẹ CPython, pẹlu C API fun idagbasoke awọn amugbooro C. Pyston ni akọkọ ni idagbasoke nipasẹ Dropbox, eyiti o pinnu ni ọdun 2017 lati dawọ idagbasoke inu. Ni ibẹrẹ ọdun 2020, awọn Difelopa ti o ga julọ da ile-iṣẹ wọn mulẹ, tun ṣe idawọle iṣẹ naa patapata, o bẹrẹ si ṣiṣẹ ni akoko kikun Pyston.
Awọn alaye imọ-ẹrọ lori padding Pyston 2 ko ti pese sibẹsibẹ, DynASM JIT nikan, fifọ kaini, ati awọn iṣapeye CPython gbogbogbo ni a mẹnuba. Ẹya ti tẹlẹ ti Pyston lo ọna JIT kan ni akoko kan, iru si JIT ni awọn ẹrọ JavaScript ode oni.
Ni JIT, koodu Python ni itupalẹ ati tumọ si aṣoju agbedemeji LLVM (IR, Aṣoju agbedemeji). Siwaju si, a ti ṣe oniduro IR ni iṣagbeye LLVM o si kọja si ẹrọ LLVM JIT fun ipaniyan, eyiti o yi aṣoju IR pada si koodu ẹrọ.
Lati gba alaye nipa awọn oriṣi awọn oniyipada fun awọn eto ni ede Python ti o ni agbara, ilana ti asọtẹlẹ iṣeeṣe ti awọn iru nkan ni a lo, atẹle nipa alaye ti yiyan ti o pe ni iru ipaniyan.
Nitorinaa, Pyston yatọ si ipaniyan nigbagbogbo laarin awọn ẹka meji: iyara, nigbati awọn idiyele ti a sọtẹlẹ ti wa ni timo, ati fifalẹ, eyiti o lo ni ọran iru aito.
Iṣẹ naa le ṣee ṣe ni ipo multithreaded, ngbanilaaye ipaniyan iru ti awọn okun koodu pupọ ni ede Python ati ọfẹ lati titiipa onitumọ agbaye (GIL).
Níkẹyìn ti o ba fẹ lati mọ diẹ sii nipa rẹ, o le ṣayẹwo awọn alaye ninu atẹle ọna asopọ.
Jẹ akọkọ lati sọ ọrọ