Ohjelmointi

Pyston palaa kuolleista nopeuttaakseen Pythonia

Pystonin, joka on Python-ajonaikaisen version muunnos, joka käyttää juuri oikeaan aikaan -kokoelmaa Python-ohjelmien suorittamisen nopeuttamiseksi, palataan jälleen pitkän kaatumisen jälkeen. Uusi kehitystiimi on julkaissut Pyston 2.0 -version, kun Dropbox lopetti.

Pyston tarjoaa lopulta korvattavaksi tavallisen Python-ajonaikaisen CPythonin. Se on yhteensopiva Python 3.8: n kanssa, joten kyseisen Python-version kanssa suoritettavien ohjelmien tulisi toimia sellaisenaan Pystonissa.

Pyston suorittaa koodin generoinnin käyttämällä juuri-in-time-kääntöä tai JITting-ohjelmaa tuottamaan monia sen nopeutuksista. Pure-Python-ohjelmat näyttävät suurimmat parannukset, kun taas ohjelmat, jotka käyttävät C / C ++ -moduuleja nopeammin, kuten PyTorch, näyttävät vähemmän tai ei ollenkaan.

Yksi projektin tavoitteista oli pysyä mahdollisimman lähellä CPythonin alkuperäistä toteutusta, koska monet kolmannen osapuolen projektit tekevät oletuksia CPythonin käyttäytymisestä. Siten Pyston 2.0 alkoi olemassa olevalla CPython-koodikannalla ja lisäsi Pyston 1.0: n hyvin toimivia ominaisuuksia, kuten välimuistimääritteet ja JITting. Pystonin JIT ei enää käytä LLVM: ää, vaan DynASM: ää lähettämään kokoonpanoa suoraan.

JITting on sama tekniikka, jota toinen projekti, PyPy, käyttää toimittamaan suuria nopeutuksia Python-sovelluksiin - joissakin tapauksissa seitsemän kertaa CPythonin tarjoama. Pystonin valmistajat väittävät kuitenkin, että heidän lähestymistavallaan on useita etuja PyPyyn verrattuna, mukaan lukien parempi yhteensopivuus CPythonin C-sovellusliittymän kanssa ja pienempi muistin kulutus tavallisille kuormille (esim. Pullo ja DjangoCMS).

Dropboxissa luotu Pyston lopetti kehityksen vuonna 2017, kun Dropbox peruutti tuen. Nyt projekti jatkuu joidenkin alkuperäisten kehittäjien hoidossa, vaikkakin itsenäisesti.

"Vuoden 2020 alussa", virallisessa Pyston-blogissa todetaan, "tarpeeksi kappaletta oli paikallaan, jotta voimme perustaa yrityksen ja työskennellä Pystonin kanssa kokopäiväisesti." Toisin kuin alkuperäinen Pyston-inkarnaatio, uusi versio on toistaiseksi suljettu lähdekoodi, koska sen uudet taloudenhoitajat määrittelevät heidän liiketoimintamallinsa. Projektin GitHubissa käytettävissä oleva lähdekoodi näyttää olevan peräisin sen aikaisemmasta inkarnaatiosta, ei viimeisimmästä versiosta.

Esiasennetut Pystonin binäärit ovat saatavilla Ubuntu 18.04- ja Ubuntu 20.04 x86_64 -käyttöjärjestelmille. Kehitystiimi on valmis rakentamaan muita painoksia käyttäjien palautteen perusteella.