Programování

Microsoft Pyjion zvyšuje rychlost Pythonu

Nový projekt společnosti Microsoft s otevřeným zdrojovým kódem, Pyjion, zlepšuje rychlost jazyka Python tím, že rozšiřuje jeho skladový interpret o JIT odvozený z projektu Microsoftu CoreCLR.

Standardní běhový modul Pythonu, CPython, interpretuje pouze bytecode aplikací Pythonu a nijak nezrychluje kompilací kódu. Jednou z běžných metod k urychlení Pythonu je úplné nahrazení CPythonu. PyPy, oblíbená náhrada CPython, využívá kompilátor JIT k urychlení aplikací v Pythonu.

PyPy poskytuje značné zvýšení rychlosti mnoha aplikacím, ale ne všem, a někdy dokonce přináší horší výkon než CPython. Také nemá nejlepší podporu pro rozšiřující moduly CPython, které jsou široce používány v aplikacích Pythonu, jako jsou vědecké výpočty; někteří nejzanícenější uživatelé Pythonu tedy nemohou PyPy vůbec využívat.

Pyjion má jiný přístup. Přidává JIT API do CPythonu, takže více JIT může být připojeno přímo do CPythonu. Vzhledem k tomu, že CPython se stále používá, aplikace běží jako obvykle, včetně těch, které se spoléhají na rozšiřující moduly.

Pyjion se také zaměřuje na Python 3, kde jiné projekty akcelerace Pythonu do značné míry upřednostňovaly Python 2. PyPy podporuje Python 3, ale pouze Python 3.2, od té doby bylo přidáno tolik jazykových konstrukcí (jako např.asynchronní / čekat) nebude fungovat.

Společnost Microsoft tvrdí, že přístup Pyjionu je flexibilnější, protože s komponentou JIT je zacházeno s připojitelným prostředkem. Volba JIT na základě CoreCLR nemá být jedinou možností, ale spíše slouží jako proof-of-concept. Podle dokumentace na GitHubu Microsoft doufá, že to „povede k šíření běhových časů JIT pro Python, což lidem umožní vybrat si JIT, který nejlépe odpovídá jejich pracovní zátěži.“

Společnost Microsoft přispívá ke stávajícím projektům s otevřeným zdrojovým kódem většinou nepřímou podporou svého vlastního úsilí. Například jeho příspěvky do linuxového jádra šly hlavně o to, aby se Linux stal v Azure prvotřídním občanem. Ale jeho jazyková práce byla o něco otevřenější a pokud Pyjion najde trakci, bude to jeden z největších příspěvků, které Microsoft učinil pro ekosystém jazyka, který předtím neměl přímou ruku.

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