Po trojročnej prestávke vo vývoji bolo zverejnené zahájenie projektu Pyston 2, čo som vyvinulk vysoko výkonnej implementácii jazyka Python s využitím vývoja projektu LLVM.
Implementácia vyniká využitím moderných technológií kompilácie JIT a jeho cieľom je dosiahnuť vysoký výkon podobný tradičným jazykom systému, ako je C ++.
Kód z predchádzajúcich verzií od Pystona bol distribuovaný pod licenciou Apache, ale kód Pyston 2 ešte nie je k dispozícii a pre Ubuntu 18.04 a 20.04 sú vydané iba zostavenia pripravené na použitie (súbor s kódom je k dispozícii na stiahnutie, ale existuje iba útržok s informáciami, že projekt je stále uzavretý) .
Zverejnenie kódu je súčasťou plánov vývojárovale toto sa urobí po dokončení formovania obchodného modelu novej spoločnosti a bolo rozhodnuté pokračovať vo vývoji spoločnosti Pyston bez finančnej podpory spoločnosti Dropbox.
O aplikácii Pyston 2
Na rozdiel od predchádzajúcich verzií Pyston 2 je označený ako stabilný a nie ako skúšobná verzia. Na optimalizácii výkonu sa urobilo veľa práce a Pyston 2 je teraz pri absolvovaní testovacej sady python-macrobenchmarks rýchlejší ako pôvodný Python 3.8, a to zhruba o 20%.
Najvýraznejšie prírastky výkonu sa prejavujú v inherentných pracovných zaťaženiach webových aplikácií. V samostatných testoch, ako sú chaos.py a nbody.py, Pyston 2 prekonáva Python 3.8 o faktor 2. Cena za použitie JIT mierne zvyšuje spotrebu pamäte.
Sme veľmi radi, že môžeme vydať Pyston v2, rýchlejšiu a vysoko kompatibilnú implementáciu programovacieho jazyka Python. Verzia 2 je o 20% rýchlejšia ako štandardný Python 3.8 v našich makrobenchmarkoch. Dôležitejšie je, že vo vašom kóde je pravdepodobne rýchlejší. Pyston v2 môže znížiť náklady na server, znížiť latenciu používateľov a zvýšiť produktivitu vývojárov.
Program Pyston v2 sa dá ľahko implementovať, takže ak hľadáte lepší výkon v jazyku Python, odporúčame vám vyskúšať ho päť minút. To je jeden z najjednoduchších spôsobov, ako urýchliť svoj projekt.
Z hľadiska kompatibility s natívnym Pythonom, projektom Pyston je ponúkaný ako najkompatibilnejšia alternatívna implementácia pre CPython, keďže Pyston je vidlicou hlavnej kódovej základne CPython.
piest podporuje všetky funkcie CPython, vrátane C API pre vývoj rozšírení C. Pyston bol pôvodne vyvinutý spoločnosťou Dropbox, ktorá sa v roku 2017 rozhodla ukončiť interný vývoj. Začiatkom roku 2020 založili poprední vývojári spoločnosti Pyston svoju spoločnosť, úplne znovuobjavili projekt a začali pracovať v spoločnosti Pyston na plný úväzok.
Technické podrobnosti o výplni Pyston 2 zatiaľ nie sú poskytované, spomínajú sa iba DynASM JIT, vložené ukladanie do medzipamäte a všeobecná optimalizácia CPython. Predchádzajúca verzia Pystonu používala po jednom spôsobe JIT, podobne ako JIT v moderných motoroch JavaScriptu.
V JIT bol kód Pythonu analyzovaný a preložený na stredné zastúpenie LLVM (IR, stredné zastúpenie). Ďalej bola IR reprezentácia spracovaná v optimalizátore LLVM a odovzdaná na vykonanie do LLVM JIT enginu, ktorý IR reprezentáciu previedol do strojového kódu.
Na získanie informácií o typoch premenných pre programy v dynamickom jazyku Python bola použitá technika pravdepodobnostnej predikcie typov objektov, po ktorej nasledovalo objasnenie správnej voľby typu počas vykonávania.
Preto Pyston neustále menil vykonávanie medzi dvoma vetvami: rýchlym, keď sa potvrdia predpovedané rýchlosti, a pomalým, ktoré sa používa v prípade nesúladu typov.
Úlohu bolo možné vykonať v režime viacerých vlákien, umožňujúce paralelné vykonávanie niekoľkých vlákien kódu v jazyku Python bez globálneho zámku tlmočníka (GIL).
Konečne ak o tom chcete vedieť viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.