Ohjelmointi

Microsoft Pyjion parantaa Python-nopeutta

Uusi avoimen lähdekoodin Microsoft-projekti, Pyjion, parantaa Python-kielen nopeutta lisäämällä sen osaketulkin JIT: llä, joka on johdettu Microsoftin CoreCLR-projektista.

Pythonin vakioasiakirjan ajonaikainen CPython tulkitsee vain Python-sovellusten tavukoodin eikä nopeuta laatimalla koodia millään tavalla. Yksi yleinen tapa nopeuttaa Pythonia on korvata CPython kokonaan. PyPy, suosittu CPython-korvaus, käyttää JIT-kääntäjää Python-sovellusten nopeuttamiseksi.

PyPy tarjoaa huomattavan nopeuden lisäyksen monille sovelluksille, mutta ei kaikille, ja se tarjoaa joskus jopa huonompaa suorituskykyä kuin CPython. Sillä ei myöskään ole parasta tukea CPython-laajennusmoduuleille, joita käytetään laajalti Python-sovelluksissa, kuten tieteellisessä laskennassa; Jotkut innokkaimmista Python-käyttäjistä eivät voi hyödyntää PyPyä lainkaan.

Pyjion käyttää erilaista lähestymistapaa. Se lisää Jy-sovellusliittymän CPythoniin, joten useita JIT: iä voidaan liittää suoraan CPythoniin. Koska CPython on edelleen käytössä, sovellukset toimivat normaalisti, mukaan lukien ne, jotka luottavat laajennusmoduuleihin.

Pyjion kohdistaa myös Python 3: een, jossa muut Python-kiihdytysprojektit ovat suosineet pitkälti Python 2: ta. PyPy tukee Python 3: ta, mutta vain Python 3.2: tä, niin monta kielirakennetta siitä lähtien (kutenasynkronoi / odota) ei toimi.

Microsoft väittää, että Pyjionin lähestymistapa on joustavampi, koska JIT-komponenttia käsitellään liitettävissä olevana resurssina. CoreCLR-pohjaisen yhteisen tutkintaryhmän valintaa ei ole tarkoitettu ainoaksi vaihtoehdoksi, vaan se toimii todisteena konseptista. GitHubin dokumentaation mukaan Microsoft toivoo, että tämä "johtaa Pythonin JIT-ajonaikojen lisääntymiseen, jolloin ihmiset voivat valita JIT: n, joka parhaiten sopii heidän työmääräänsä".

Microsoft osallistuu olemassa oleviin avoimen lähdekoodin projekteihin lähinnä omien ponnistelujensa epäsuoralla tuella. Esimerkiksi sen panos Linux-ytimeen oli lähinnä siitä, että Linuxista tuli ensimmäisen luokan kansalainen Azuressa. Mutta sen kielityö on ollut hieman avoimempaa, ja jos Pyjion löytää pidon, se on yksi suurimmista panoksista, joita Microsoft on antanut sellaisen kielen ekosysteemille, jolla ei aiemmin ollut suoraa kättä.

$config[zx-auto] not found$config[zx-overlay] not found