Pyston 2 implementacija Pythona sa JIT kompajlerom

Nakon trogodišnje stanke u razvoju, objavljeno je pokretanje projekta Pyston 2, šta sam razviodo implementacije Python jezika visokih performansi koristeći razvoj LLVM projekta.

Implementacija izdvaja se po upotrebi modernih tehnologija kompajliranja JIT i ima za cilj postizanje visokih performansi sličnih tradicionalnim sistemskim jezicima kao što je C ++.

Kôd iz prethodnih verzija od Pystona distribuirana je pod licencom Apache, ali Pyston 2 kôd još nije dostupan i za Ubuntu 18.04 i 20.04 objavljene su samo verzije spremne za upotrebu (datoteka s kodom je dostupna za preuzimanje, ali postoji samo kvar s informacijama da je projekt još uvijek zatvoren) .

Objavljivanje koda dio je planova programeraali to će biti učinjeno nakon završetka formiranja poslovnog modela nove kompanije i odlučeno je da se Pyston nastavi razvijati bez financijske podrške Dropboxa.

O Pystonu 2

Za razliku od prethodnih verzija, Pyston 2 je označen kao stabilan a ne kao probnu verziju. Puno se radilo na optimizaciji performansi i Pyston 2 je sada brži od originalnog Pythona 3.8 za oko 20% prilikom prolaska paketa za testiranje python-macrobenchmarks.

Najznačajniji dobici u performansama vide se u inherentnim radnim opterećenjima web aplikacija. U odvojenim testovima, kao što su chaos.py i nbody.py, Pyston 2 nadmašuje Python 3.8 faktor 2. Trošak upotrebe JIT-a je blagi porast potrošnje memorije.

Vrlo smo uzbuđeni što smo objavili Pyston v2, bržu i visoko kompatibilnu implementaciju programskog jezika Python. Verzija 2 je 20% brža od standardnog Pythona 3.8 u našim makrobenčmarkama. Što je još važnije, vjerovatno je brži u vašem kodu. Pyston v2 može smanjiti troškove poslužitelja, smanjiti kašnjenja korisnika i poboljšati produktivnost programera.

Pyston v2 je jednostavan za implementaciju, pa ako tražite bolje Python performanse, preporučujemo vam da odvojite pet minuta i probate Pyston. To je jedan od najlakših načina za ubrzavanje vašeg projekta.

U pogledu kompatibilnosti sa izvornim Pythonom, projektom Pyston se smatra najkompatibilnijom alternativnom implementacijom za CPython, jer je Pyston račvanje glavne baze CPython koda.

Pyston podržava sve CPython funkcije, uključujući C API za razvoj proširenja C. Pyston je izvorno razvio Dropbox koji je 2017. godine odlučio prekinuti interni razvoj. Početkom 2020. godine, vrhunski programeri Pystona osnovali su svoju kompaniju, potpuno izmislili projekt i počeli raditi u Pystonu s punim radnim vremenom.

Tehnički detalji o podlozi Pyston 2 još nisu dani, spominju se samo DynASM JIT, ugrađeno predmemoriranje i općenite optimizacije CPythona. Prethodna verzija Pystona koristila je po jednu metodu JIT, slično kao JIT u modernim JavaScript motorima.

U JIT-u je Python kod raščlanjen i preveden na posredni prikaz LLVM (IR, srednji prikaz). Nadalje, IR prikaz je obrađen u LLVM optimizeru i proslijeđen je na izvršavanje LLVM JIT mehanizmu, koji je pretvorio IR prikaz u mašinski kod.

Za dobivanje informacija o vrstama varijabli za programe na dinamičkom jeziku Python korištena je tehnika vjerovatnosnog predviđanja tipova objekata, nakon čega je slijedilo pojašnjenje pravilnog izbora tipa tijekom izvođenja.

Stoga je Pyston neprestano mijenjao izvršenje između dvije grane: brze, kada se potvrde predviđene stope, i spore, koja se koristi u slučaju neusklađenosti tipa.

Posao se može obaviti u višenitnom načinu, omogućavajući paralelno izvršavanje nekoliko niti koda u jeziku Python i bez globalne brave interpretera (GIL).

Konačno ako želite znati više o tome, detalje možete provjeriti u sljedeći link.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena.

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.