Pyston 2: Python-toteutus JIT-kääntäjällä

Kolmen vuoden tauon jälkeen kehityksessä Pyston 2 -hankkeen käynnistäminen on julkaistu, mitä kehitinPython-kielen tehokkaaseen käyttöönottoon käyttämällä LLVM-projektin kehitystä.

Toimeenpano erottuu modernin JIT-kokoamistekniikan käytöstä ja sen tavoitteena on saavuttaa korkea suorituskyky, joka muistuttaa perinteisiä järjestelmäkieliä, kuten C ++.

Aiempien versioiden koodi kirjoittanut Pyston jaettiin Apache-lisenssillä, mutta Pyston 2 -koodi ei ole vielä saatavilla, ja vain käyttövalmiit koontiversiot julkaistaan ​​Ubuntu 18.04: lle ja 20.04: lle (koodi sisältävä tiedosto on ladattavissa, mutta on vain tynkä, jossa on tietoja siitä, että projekti on edelleen suljettu).

Koodin julkaiseminen on osa kehittäjien suunnitelmiamutta tämä tehdään kun liiketoimintamallin muodostaminen on saatu päätökseen Pystonin kehittämistä päätettiin jatkaa ilman Dropboxin taloudellista tukea.

Tietoja Pyston 2: sta

Toisin kuin edelliset versiot, Pyston 2 on merkitty vakaana eikä kokeiluversiona. Suorituskyvyn optimoimiseksi on tehty paljon työtä, ja Pyston 2 on nyt noin 3.8% nopeampi kuin alkuperäinen Python 20, kun se läpäisee python-macrobenchmarks -testisarjan.

Merkittävimmät suorituskyvyn parannukset näkyvät luontaisissa verkkosovellusten kuormituksissa. Erillisissä testeissä, kuten chaos.py ja nbody.py, Pyston 2 ylittää Python 3.8: n kertoimella 2. JIT: n käyttökustannukset ovat vähäinen muistinkulutuksen kasvu.

Olemme erittäin innostuneita julkaisemaan Pyston v2: n, joka on nopeampi ja erittäin yhteensopiva Python-ohjelmointikielen toteutus. Versio 2 on 20% nopeampi kuin tavallinen Python 3.8 makrolinkeissämme. Vielä tärkeämpää on, että se on todennäköisesti nopeampi koodissasi. Pyston v2 voi vähentää palvelinkustannuksia, vähentää käyttäjien viiveitä ja parantaa kehittäjien tuottavuutta.

Pyston v2 on helppo toteuttaa, joten jos etsit parempaa Python-suorituskykyä, suosittelemme, että otat viisi minuuttia ja kokeilet Pystonia. Se on yksi helpoimmista tavoista nopeuttaa projektiasi.

Yhteensopivuuden kannalta natiivin Pythonin kanssa, Pyston-projekti mainostetaan CPythonin yhteensopivimmaksi vaihtoehtoiseksi toteutukseksi, koska Pyston on tärkein CPython-koodikannan haarukka.

Pyston tukee kaikkia CPython-toimintoja, Pystonin kehitti alun perin Dropbox, joka vuonna 2017 päätti lopettaa sisäisen kehityksen. Vuoden 2020 alussa Pystonin parhaat kehittäjät perustivat yrityksen, keksivät projektin kokonaan uudelleen ja alkoivat työskennellä Pystonissa kokopäiväisesti.

Teknisiä yksityiskohtia Pyston 2 -pehmusteista ei ole vielä annettu, mainitaan vain DynASM JIT, inline-välimuisti ja yleiset CPython-optimoinnit. Pystonin edellisessä versiossa käytettiin yhtä menetelmää JIT kerrallaan, samanlainen kuin JIT nykyaikaisissa JavaScript-moottoreissa.

JIT: ssä Python-koodi jäsennettiin ja käännettiin väliesitykseen LLVM (IR, Intermediate Representation). Lisäksi IR-esitys käsiteltiin LLVM-optimoijassa ja välitettiin LLVM JIT -moottorille suoritettavaksi, joka muunsi IR-esityksen konekoodiksi.

Saadaksesi tietoa dynaamisen Python-kielen ohjelmien muuttujatyypeistä, käytettiin kohdetyyppien todennäköisyysennustustekniikkaa, jota seurasi oikean tyyppivalinnan selventäminen suorituksen aikana.

Siksi Pyston vaihteli suoritusta jatkuvasti kahden haaran välillä: nopea, kun ennustetut nopeudet vahvistetaan, ja hidas, jota käytetään tyypin ristiriitatapauksissa.

Työ voidaan tehdä monisäikeisessä tilassa, sallitaan useiden koodiketjujen rinnakkainen suorittaminen Python-kielellä ja vapaa globaalista tulkkilukosta (GIL).

Vihdoin jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat seuraava linkki.


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.