Pyston 2 implementacija Pythona s JIT kompajlerom

Nakon trogodišnje stanke u razvoju, objavljeno je pokretanje projekta Pyston 2, što sam razviodo implementacije jezika Python s visokim performansama koristeći razvoj LLVM projekta.

Implementacija izdvaja se po primjeni suvremenih tehnologija kompilacije JIT i ima za cilj postizanje visokih performansi sličnih tradicionalnim sistemskim jezicima poput C ++.

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

Objavljivanje koda dio je planova programeraali ovo će biti učinjeno nakon završetka formiranja poslovnog modela nove tvrtke i odlučeno je da se Pyston nastavi razvijati bez financijske potpore 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 izvornog Pythona 3.8 za oko 20% prilikom prolaska paketa za testiranje python-macrobenchmarks.

Najznačajniji dobici u izvedbi vide se u inherentnim radnim opterećenjima web aplikacija. U odvojenim testovima poput chaos.py i nbody.py, Pyston 2 nadmašuje Python 3.8 i to za faktor 2. Cijena korištenja JIT-a malo je povećanje potrošnje memorije.

Vrlo smo uzbuđeni što ćemo objaviti Pyston v2, bržu i vrlo kompatibilnu implementaciju programskog jezika Python. Verzija 2 je 20% brža od standardnog Pythona 3.8 u našim makrobenchmarkovima. Što je još važnije, vjerojatno 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 performanse Pythona, preporučujemo vam da odvojite pet minuta i probate Pyston. To je jedan od najlakših načina za ubrzanje vašeg projekta.

U pogledu kompatibilnosti s izvornim Pythonom, projekt Pyston se smatra najkompatibilnijom alternativnom implementacijom za CPython, budući da je Pyston račvanje glavne baze CPython koda.

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

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

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

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

Stoga je Pyston neprestano mijenjao izvršenje između dviju grana: 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ćujući paralelno izvršavanje nekoliko niti koda u jeziku Python i bez globalne brave tumača (GIL).

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.