Programiranje

Microsoft Pyjion povečuje hitrost Pythona

Nov odprtokodni Microsoftov projekt Pyjion izboljšuje hitrost jezika Python tako, da dopolnjuje svoj tolmač zalog z JIT, pridobljenim iz Microsoftovega projekta CoreCLR.

Izvajalno okolje Pythona s standardno izdajo, CPython, interpretira samo bajtno kodo aplikacij Python in na noben način ne pospeši z zbiranjem kode. Eden najpogostejših načinov za pospešitev Pythona je popolna zamenjava CPythona. PyPy, priljubljena zamenjava CPython, uporablja JIT-jev prevajalnik za pospeševanje aplikacij Python.

PyPy ponuja zajeten pospešek številnih aplikacij, vendar ne vseh, včasih pa celo slabše delovanje kot CPython. Prav tako nima najboljše podpore za razširitvene module CPython, ki se pogosto uporabljajo v aplikacijah Python, kot je znanstveno računalništvo; tako nekateri najbolj zagrizeni uporabniki Pythona sploh ne morejo izkoristiti PyPy.

Pyjion ima drugačen pristop. CPythonu doda JIT API, tako da lahko več JIT-ov priključite neposredno na CPython. Ker je CPython še vedno v uporabi, se aplikacije izvajajo normalno, vključno s tistimi, ki se zanašajo na razširitvene module.

Pyjion cilja tudi na Python 3, kjer so drugi projekti za pospeševanje Pythona v veliki meri naklonjeni Pythonu 2. PyPy podpira Python 3, vendar le Python 3.2, od takrat je bilo dodanih toliko jezikovnih konstrukcij (na primerasync / await) ne bo delovalo.

Microsoft trdi, da je pristop Pyjiona bolj prilagodljiv, saj se komponenta JIT obravnava kot vtični vir. Izbira JIT, ki temelji na CoreCLR, naj ne bi bila edina možnost, temveč služi kot dokaz koncepta. Glede na dokumentacijo o GitHub Microsoft upa, da bo to "privedlo do širjenja časa izvajanja JIT za Python, kar bo ljudem omogočilo, da izberejo JIT, ki najbolje ustreza njihovi delovni obremenitvi."

Microsoft prispeva k obstoječim odprtokodnim projektom z večinoma posredno podporo lastnih prizadevanj. Njen prispevek k jedru Linuxa je bil na primer predvsem v tem, da je Linux postal prvovrstni državljan Azure. Toda njegovo jezikovno delo je bilo nekoliko bolj odprto in če bo Pyjion našel oprijem, bo to eden največjih prispevkov, ki jih je Microsoft prispeval k ekosistemu jezika, ki prej ni imel neposredne roke.

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