Pyston 2 en implementering av Python med en JIT-kompilator

Efter ett treårigt avbrott i utvecklingen, lanseringen av Pyston 2-projektet har publicerats, vad utvecklade jagtill en högpresterande implementering av Python-språket med hjälp av utvecklingen av LLVM-projektet.

Genomförandet sticker ut för användningen av moderna JIT-sammanställningstekniker och syftar till att uppnå hög prestanda som liknar traditionella systemspråk som C ++.

Koden från tidigare versioner av Pyston distribuerades under Apache-licensen, men Pyston 2-koden är ännu inte tillgänglig och endast färdiga att använda builds släpps för Ubuntu 18.04 och 20.04 (en fil med koden är tillgänglig för nedladdning men det finns bara en stub med information om att projektet fortfarande är stängt) .

Att publicera koden är en del av utvecklarnas planermen detta kommer att göras efter att affärsmodellbildningen har avslutats av det nya företaget och det beslutades att fortsätta utveckla Pyston utan ekonomiskt stöd från Dropbox.

Om Pyston 2

Till skillnad från tidigare versioner, Pyston 2 är märkt stabilt och inte som en testversion. Mycket arbete har gjorts för att optimera prestanda och Pyston 2 är nu snabbare än den ursprungliga Python 3.8 med cirka 20% när man passerar testpaketet python-macrobenchmarks.

De mest anmärkningsvärda prestationsvinsterna ses i inneboende arbetsbelastningar för webbapplikationer. I separata tester som chaos.py och nbody.py överträffar Pyston 2 Python 3.8 med en faktor 2. Kostnaden för att använda JIT är en liten ökning av minnesförbrukningen.

Vi är mycket glada att släppa Pyston v2, en snabbare och mycket kompatibel implementering av Python-programmeringsspråket. Version 2 är 20% snabbare än standard Python 3.8 i våra makrobenchmarks. Ännu viktigare, det är sannolikt snabbare i din kod. Pyston v2 kan minska serverkostnaderna, minska användarfördröjningar och förbättra utvecklarens produktivitet.

Pyston v2 är lätt att implementera, så om du letar efter bättre Python-prestanda rekommenderar vi att du tar fem minuter och ger Pyston ett försök. Att göra det är ett av de enklaste sätten att påskynda ditt projekt.

När det gäller kompatibilitet med infödd Python, Pyston-projektet framställs som den mest kompatibla alternativa implementeringen för CPython, eftersom Pyston är en gaffel med den viktigaste CPython-kodbasen.

kolv stöder alla CPython-funktioner, inklusive C API för utveckling av C-tillägg. Pyston utvecklades ursprungligen av Dropbox, som 2017 beslutade att avbryta den interna utvecklingen. I början av 2020 grundade Pystons främsta utvecklare sitt företag, uppfann projektet helt och började arbeta på Pyston heltid.

Tekniska detaljer om Pyston 2-stoppning tillhandahålls ännu inte, bara DynASM JIT, inbyggd caching och allmänna CPython-optimeringar nämns. Den tidigare versionen av Pyston använde en metod JIT åt gången, liknande JIT i moderna JavaScript-motorer.

I JIT analyserades och översattes Python-koden till en mellanliggande representation LLVM (IR, mellanliggande representation). Vidare bearbetades IR-representationen i LLVM-optimeraren och skickades till LLVM JIT-motorn för körning, vilket konverterade IR-representationen till maskinkod.

För att få information om typerna av variabler för program i det dynamiska Python-språket användes tekniken för probabilistisk förutsägelse av objekttyper, följt av klargörande av rätt typval under körning.

Därför varierade Pyston ständigt utförandet mellan två grenar: den snabba, när förutsagda hastigheter bekräftas, och den långsamma, som används i fall av typmatchning.

Jobbet kan göras i flertrådigt läge, möjliggör parallell körning av flera kodtrådar på Pythonspråket och fri från det globala tolklåset (GIL).

Slutligen om du vill veta mer om detkan du kontrollera detaljerna i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.