Programovanie

Microsoft Pyjion zvyšuje rýchlosť Pythonu

Nový projekt spoločnosti Microsoft s otvoreným zdrojovým kódom, Pyjion, zvyšuje rýchlosť jazyka Python rozšírením jeho skladového tlmočníka o JIT odvodený z projektu Microsoftu CoreCLR.

Runtime štandardného vydania Pythonu, CPython, interpretuje iba bytecode aplikácií Pythonu a nijakým spôsobom sa nezrýchľuje kompiláciou kódu. Jednou z bežných metód na zrýchlenie Pythonu je úplná výmena CPythonu. PyPy, populárna náhrada CPythonu, využíva kompilátor JIT na urýchlenie aplikácií v Pythone.

PyPy poskytuje značné zvýšenie rýchlosti mnohým aplikáciám, ale nie všetkým, a niekedy dokonca poskytuje horší výkon ako CPython. Tiež nemá najlepšiu podporu pre rozširujúce moduly CPython, ktoré sa široko používajú v aplikáciách Pythonu, ako sú vedecké výpočty; niektorí z najviac zanietených používateľov Pythonu teda nemôžu PyPy vôbec využívať.

Pyjion pristupuje odlišne. K CPythonu pridáva JIT API, takže priamo do CPythonu je možné zapojiť viac JIT. Pretože sa CPython stále používa, aplikácie bežia ako obvykle, vrátane tých, ktoré sa spoliehajú na rozširujúce moduly.

Pyjion sa tiež zameriava na Python 3, kde iné projekty akcelerácie Pythonu uprednostňujú predovšetkým Python 2. PyPy podporuje Python 3, ale iba Python 3.2, od tej doby bolo pridaných toľko jazykových konštrukcií (ako napr.asynchronizovať / čakať) nebude fungovať.

Microsoft tvrdí, že prístup Pyjionu je flexibilnejší, pretože so zložkou JIT sa zaobchádza s pripojiteľným zdrojom. Výber JIT založeného na CoreCLR nemá byť jedinou možnosťou, ale slúži skôr ako dôkaz koncepcie. Podľa dokumentácie na GitHub Microsoft dúfa, že to „povedie k rozšíreniu runtime JIT pre Python, čo umožní ľuďom zvoliť si JIT, ktorý najlepšie zodpovedá ich pracovnému zaťaženiu“.

Spoločnosť Microsoft prispieva k existujúcim projektom otvoreného zdroja väčšinou nepriamou podporou vlastného úsilia. Napríklad jeho príspevky do jadra Linuxu spočívali hlavne v tom, aby sa Linux stal v Azure prvotriednym občanom. Ale jeho jazyková práca bola trochu otvorenejšia a ak Pyjion nájde trakciu, bude to jeden z najväčších príspevkov, ktoré spoločnosť Microsoft urobila pre ekosystém jazyka, v ktorom predtým nemala priamu ruku.

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