Pyston 2 Pythoni juurutamine JIT-kompilaatoriga

Pärast kolmeaastast pausi arengus Pyston 2 projekti käivitamine on avaldatud, mida ma arendasinPythoni keele suure jõudlusega rakendamiseni kasutades LLVM-i projekti arendusi.

Rakendamine paistab silma kaasaegsete JIT-i kompileerimistehnoloogiate kasutamise poolest ja selle eesmärk on saavutada kõrge jõudlus, mis on sarnane traditsiooniliste süsteemikeeltega nagu C ++.

Varasemate versioonide kood autor Pyston levitati Apache'i litsentsi alusel, kuid Pyston 2 kood pole veel saadaval ja Ubuntu 18.04 ja 20.04 jaoks on välja antud ainult kasutusvalmis järjendid (koodiga fail on allalaadimiseks saadaval, kuid on ainult pistik, mis sisaldab teavet selle kohta, et projekt on endiselt suletud) .

Koodi avaldamine on osa arendajate plaanidestaga seda tehakse pärast ärimudeli väljatöötamise lõpetamist uuest ettevõttest ja otsustati Pystoni arendamist jätkata ilma Dropboxi rahalise toetuseta.

Pyston 2 kohta

Erinevalt eelmistest versioonidest Pyston 2 on märgitud stabiilseks ja mitte prooviversioonina. Jõudluse optimeerimiseks on tehtud palju tööd ja Pyton 2 on nüüd Python-macrobenchmarks testipaketi läbimisel umbes 3.8% kiirem kui algne Python 20.

Kõige märkimisväärsemat jõudluse kasvu näevad omased veebirakenduste töökoormused. Eraldi testides, nagu chaos.py ja nbody.py, edestab Pyston 2 Python 3.8-d teguriga 2. JIT-i kasutamise maksumus on mälutarbimise väike kasv.

Meil on väga hea meel välja anda Pyston v2, mis on Pythoni programmeerimiskeele kiirem ja väga ühilduv rakendus. Versioon 2 on 20% kiirem kui tavaline Python 3.8 meie makroväljendites. Veelgi olulisem on see, et teie koodis on see tõenäoliselt kiirem. Pyston v2 võib vähendada serveri kulusid, vähendada kasutaja latentsusaega ja parandada arendajate tootlikkust.

Pyston v2 on hõlpsasti juurutatav, nii et kui otsite paremat Pythoni jõudlust, soovitame teil võtta viis minutit ja proovida Pystonit. See on üks lihtsamaid viise projekti kiirendamiseks.

Ühilduvuse osas emakeelena Pythoni, Pystoni projektiga reklaamitakse CPythoni kõige sobivama alternatiivse rakendusena, kuna Pyston on CPythoni peamise koodibaasi kahvliharud.

kolb toetab kõiki CPythoni funktsioone, sealhulgas C-liides C-laienduste arendamiseks. Pystoni töötas algselt välja Dropbox, kes otsustas 2017. aastal sisemise arendamise katkestada. 2020. aasta alguses asutasid Pystoni tipparendajad oma ettevõtte, leiutasid projekti täielikult ja alustasid Pystonis täiskohaga tööd.

Pyston 2 polsterduse tehnilisi üksikasju pole veel esitatud, mainitakse ainult DynASM JIT-i, sisemist vahemällu ja üldisi CPythoni optimeerimisi. Pystoni eelmises versioonis kasutati ühte meetodit JIT korraga, sarnaselt JIT-iga moodsates JavaScripti mootorites.

JIT-is analüüsiti ja tõlgiti Pythoni kood vahepealsele esindusele LLVM (IR, Intermediate representation). Lisaks töödeldi IR-esitust LLVM-i optimeerijas ja edastati LLVM JIT-i mootorile täitmiseks, mis muutis IR-kujutise masinkoodiks.

Dünaamilises Pythoni keeles programmide muutujate tüüpide kohta teabe saamiseks kasutati objektitüüpide tõenäosusliku ennustamise tehnikat, millele järgnes täitmise ajal tüübi õige valiku selgitamine.

Seetõttu varieeris Pyston teostust pidevalt kahe haru vahel: kiire, kui prognoositud määrad on kinnitatud, ja aeglane, mida kasutatakse tüübi mittevastavuse korral.

Töö võiks toimuda mitmikeermelises režiimis, võimaldades mitme koodilõigu paralleelset käivitamist Pythoni keeles ja vaba globaalsest tõlgenduslukust (GIL).

Lõpuks kui soovite selle kohta rohkem teada saada, saate üksikasju vaadata järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.