Programmering

Microsoft Pyjion øker Python-hastigheten

Et nytt Microsoft-prosjekt med åpen kildekode, Pyjion, forbedrer hastigheten på Python-språket ved å utvide aksjetolken med en JIT avledet av Microsofts CoreCLR-prosjekt.

Pythons standardutgave kjøretid, CPython, tolker bare bytekoden til Python-apper og akselererer ikke ved å kompilere koden på noen måte. En vanlig metode for å øke hastigheten på Python er å erstatte CPython helt. PyPy, en populær CPython-erstatning, bruker en JIT-kompilator for å akselerere Python-applikasjoner.

PyPy gir en kraftig hastighetsforbedring for mange applikasjoner, men ikke alle, og noen ganger gir den til og med dårligere ytelse enn CPython. Det har heller ikke den beste støtten for CPython-utvidelsesmoduler, som er mye brukt i Python-applikasjoner som vitenskapelig databehandling; dermed kan noen av de ivrigste Python-brukerne ikke utnytte PyPy i det hele tatt.

Pyjion tar en annen tilnærming. Det legger til en JIT API til CPython, slik at flere JIT kan kobles direkte til CPython. Siden CPython fortsatt er i bruk, kjører apper som normalt, inkludert de som er avhengige av utvidelsesmoduler.

Pyjion retter seg også mot Python 3, der andre Python-akselerasjonsprosjekter i stor grad har favorisert Python 2. PyPy støtter Python 3, men bare Python 3.2, så mange språkkonstruksjoner lagt til siden da (for eksempelasynkronisere / vente) vil ikke fungere.

Microsoft hevder Pyjions tilnærming er mer fleksibel, siden JIT-komponenten blir behandlet som en pluggbar ressurs. Valget av en JIT basert på CoreCLR er ikke ment å være det eneste alternativet, men det tjener som et proof-of-concept. I følge dokumentasjonen på GitHub håper Microsoft dette vil "føre til en spredning av JIT-driftstider for Python, slik at folk kan velge en JIT som passer best til deres arbeidsmengde."

Microsoft bidrar til eksisterende open source-prosjekter via stort sett indirekte støtte for egen innsats. Dens bidrag til Linux-kjernen, for eksempel, handlet hovedsakelig om å gjøre Linux til en førsteklasses borger i Azure. Men språkarbeidet har vært litt mer åpent, og hvis Pyjion finner grep, vil det være et av de største bidragene som Microsoft har gitt til økosystemet til et språk det tidligere ikke hadde noen direkte hånd i.

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