Pyston 2 en implementering af Python med en JIT-compiler

Efter en tre-årig pause i udvikling, lanceringen af ​​Pyston 2-projektet er blevet offentliggjort, hvad udviklede jegtil en højtydende implementering af Python-sproget ved hjælp af udviklingen i LLVM-projektet.

Implementeringen skiller sig ud for brugen af ​​moderne JIT-kompileringsteknologier og sigter mod at opnå høj ydeevne svarende til traditionelle systemsprog som C ++.

Koden fra tidligere versioner af Pyston blev distribueret under Apache-licensen, men Pyston 2-koden er ikke tilgængelig endnu, og kun brugsklare builds frigives til Ubuntu 18.04 og 20.04 (en fil med koden er tilgængelig til download, men der er kun en stub med information om, at projektet stadig er lukket) .

Offentliggørelse af koden er en del af udviklerens planermen dette vil blive gjort efter dannelse af forretningsmodel er afsluttet af det nye selskab, og det blev besluttet at fortsætte udviklingen af ​​Pyston uden Dropbox 'økonomiske støtte.

Om Pyston 2

I modsætning til tidligere versioner Pyston 2 er markeret som stabil og ikke som en prøveversion. Der er gjort meget arbejde for at optimere ydeevnen, og Pyston 2 er nu hurtigere end den originale Python 3.8 med ca. 20%, når den passerer testpakke til python-macrobenchmarks.

De mest bemærkelsesværdige præstationsgevinster ses i iboende webapplikationsarbejdsbelastninger. I separate tests som chaos.py og nbody.py overgår Pyston 2 Python 3.8 med en faktor 2. Omkostningerne ved at bruge JIT er en lille stigning i hukommelsesforbruget.

Vi er meget glade for at frigive Pyston v2, en hurtigere og yderst kompatibel implementering af Python-programmeringssproget. Version 2 er 20% hurtigere end standard Python 3.8 i vores makrobenchmarks. Mere vigtigt er det sandsynligvis hurtigere i din kode. Pyston v2 kan reducere serveromkostninger, reducere brugerlatenser og forbedre udviklerens produktivitet.

Pyston v2 er let at implementere, så hvis du leder efter bedre Python-ydeevne, anbefaler vi, at du tager fem minutter og giver Pyston en chance. Det er en af ​​de nemmeste måder at fremskynde dit projekt på.

Med hensyn til kompatibilitet med indfødte Python, Pyston-projektet er udråbt som den mest kompatible alternative implementering til CPython, da Pyston er en fork af den vigtigste CPython-kodebase.

stempel understøtter alle CPython-funktioner, herunder C API til udvikling af C-udvidelser. Pyston blev oprindeligt udviklet af Dropbox, som i 2017 besluttede at stoppe den interne udvikling. I begyndelsen af ​​2020 grundlagde Pystons topudviklere deres firma, genopfandt projektet fuldstændigt og begyndte at arbejde hos Pyston på fuld tid.

Tekniske detaljer om Pyston 2-polstring er endnu ikke givet, kun DynASM JIT, inline caching og generelle CPython-optimeringer er nævnt. Den tidligere version af Pyston brugte en metode JIT ad gangen, svarende til JIT i moderne JavaScript-motorer.

I JIT blev Python-koden analyseret og oversat til en mellemrepræsentation LLVM (IR, mellemrepræsentation). Desuden blev IR-repræsentationen behandlet i LLVM-optimeringsværktøjet og sendt til LLVM JIT-motoren til udførelse, som konverterede IR-repræsentationen til maskinkode.

For at få information om typerne af variabler til programmer i det dynamiske Python-sprog blev teknikken til sandsynlig forudsigelse af objekttyper brugt efterfulgt af afklaring af det korrekte valg af type under udførelse.

Derfor varierede Pyston konstant udførelsen mellem to grene: den hurtige, når de forudsagte satser bekræftes, og den langsomme, som bruges i tilfælde af en type uoverensstemmelse.

Jobbet kunne udføres i multitrådet tilstand, muliggør parallel udførelse af flere kodetråde på Python-sproget og fri for den globale tolkelås (GIL).

Endelig hvis du vil vide mere om det, kan du kontrollere detaljerne i følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.