Pyston 2 en implementering av Python med en JIT-kompilator

Etter en treårig pause i utviklingen, lanseringen av Pyston 2-prosjektet er publisert, hva utviklet jegtil en høy ytelse implementering av Python-språket ved hjelp av utviklingen av LLVM-prosjektet.

Implementeringen skiller seg ut for bruk av moderne JIT-kompileringsteknologi og har som mål å oppnå høy ytelse som ligner på tradisjonelle systemspråk som C ++.

Koden fra tidligere versjoner av Pyston ble distribuert under Apache-lisensen, men Pyston 2-koden er ennå ikke tilgjengelig, og bare bruksklare bygg er utgitt for Ubuntu 18.04 og 20.04 (en fil med koden er tilgjengelig for nedlasting, men det er bare en stubbe med informasjon om at prosjektet fremdeles er lukket).

Å publisere koden er en del av utviklerens planermen dette vil bli gjort etter at forretningsmodelldannelsen er fullført av det nye selskapet, og det ble besluttet å fortsette å utvikle Pyston uten økonomisk støtte fra Dropbox.

Om Pyston 2

I motsetning til tidligere versjoner, Pyston 2 er merket stabil og ikke som prøveversjon. Mye arbeid har blitt gjort for å optimalisere ytelsen, og Pyston 2 er nå raskere enn den opprinnelige Python 3.8 med omtrent 20% når den passerer testpakke for python-macrobenchmarks.

De mest bemerkelsesverdige ytelsesgevinstene sees i iboende arbeidsbelastninger for webapplikasjoner. I separate tester som chaos.py og nbody.py overgår Pyston 2 Python 3.8 med en faktor 2. Kostnaden ved å bruke JIT er en liten økning i minneforbruket.

Vi er veldig glade for å gi ut Pyston v2, en raskere og svært kompatibel implementering av Python-programmeringsspråket. Versjon 2 er 20% raskere enn standard Python 3.8 i våre makrobenchmarks. Enda viktigere, det er sannsynligvis raskere i koden din. Pyston v2 kan redusere serverkostnader, redusere brukerforsinkelser og forbedre utviklerens produktivitet.

Pyston v2 er enkel å implementere, så hvis du er ute etter bedre Python-ytelse, anbefaler vi at du tar fem minutter og gir Pyston en sjanse. Å gjøre det er en av de enkleste måtene å få fart på prosjektet.

Når det gjelder kompatibilitet med innfødt Python, Pyston-prosjektet blir spioneringen som den mest kompatible alternative implementeringen for CPython, siden Pyston er en gaffel med den viktigste CPython-kodebasen.

Pyston støtter alle CPython-funksjoner, inkludert C API for utvikling av C-utvidelser. Pyston ble opprinnelig utviklet av Dropbox, som i 2017 bestemte seg for å avvikle intern utvikling. Tidlig i 2020 grunnla Pystons topputviklere sitt selskap, oppfant prosjektet på nytt, og begynte å jobbe på Pyston på heltid.

Tekniske detaljer om Pyston 2-polstring er ikke gitt ennå, bare DynASM JIT, innebygd caching og generelle CPython-optimaliseringer er nevnt. Den forrige versjonen av Pyston brukte en metode JIT om gangen, i likhet med JIT i moderne JavaScript-motorer.

I JIT ble Python-koden analysert og oversatt til en mellomrepresentasjon LLVM (IR, mellomrepresentasjon). Videre ble IR-representasjonen behandlet i LLVM-optimalisereren og sendt til LLVM JIT-motoren for utføring, som konverterte IR-representasjonen til maskinkode.

For å få informasjon om typene variabler for programmer i det dynamiske Python-språket, ble teknikken for sannsynlig prediksjon av objekttyper brukt, etterfulgt av en avklaring av riktig valg av type under utførelse.

Derfor varierte Pyston stadig utførelsen mellom to grener: den raske, når forutsagte priser bekreftes, og den langsomme, som brukes i tilfelle en type uoverensstemmelse.

Jobben kan gjøres i flertrådet modus, muliggjør parallell kjøring av flere kodetråder i Python-språket og fri fra den globale tolkelåsen (GIL).

Endelig hvis du vil vite mer om det, kan du sjekke detaljene i følgende lenke.


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.