Po tříleté přestávce ve vývoji bylo zveřejněno zahájení projektu Pyston 2, co jsem vyvinulk vysoce výkonné implementaci jazyka Python s využitím vývoje projektu LLVM.
Implementace vyniká využitím moderních kompilačních technologií JIT a jeho cílem je dosáhnout vysokého výkonu podobného tradičním systémovým jazykům, jako je C ++.
Kód z předchozích verzí od Pystona byl distribuován pod licencí Apache, ale kód Pyston 2 ještě není k dispozici a pro Ubuntu 18.04 a 20.04 jsou vydávány pouze sestavení připravená k použití (soubor s kódem je k dispozici ke stažení, ale existuje pouze útržek s informacemi, že projekt je stále uzavřen).
Publikování kódu je součástí plánů vývojářůale to se stane po dokončení formování obchodního modelu nové společnosti a bylo rozhodnuto pokračovat ve vývoji Pystonu bez finanční podpory Dropboxu.
O společnosti Pyston 2
Na rozdíl od předchozích verzí Pyston 2 je označen jako stabilní a ne jako zkušební verze. Bylo provedeno mnoho práce na optimalizaci výkonu a Pyston 2 je nyní při předávání testovací sady python-macrobenchmarks rychlejší než původní Python 3.8 o přibližně 20%.
Nejvýznamnější zvýšení výkonu se projevují v inherentních úlohách webových aplikací. V samostatných testech, jako jsou chaos.py a nbody.py, Pyston 2 překonává Python 3.8 o faktor 2. Náklady na používání JIT znamenají mírné zvýšení spotřeby paměti.
Jsme velmi rádi, že můžeme vydat Pyston v2, rychlejší a vysoce kompatibilní implementaci programovacího jazyka Python. Verze 2 je o 20% rychlejší než standardní Python 3.8 v našich makrobenchmarkech. Ještě důležitější je, že ve vašem kódu je pravděpodobně rychlejší. Pyston v2 může snížit náklady na server, snížit latenci uživatelů a zlepšit produktivitu vývojářů.
Pyston v2 se snadno implementuje, takže pokud hledáte lepší výkon Pythonu, doporučujeme vám věnovat pět minut a vyzkoušet Pyston. To je jeden z nejjednodušších způsobů, jak projekt urychlit.
Pokud jde o kompatibilitu s nativním Pythonem, projektem Pyston je nabízen jako nejkompatibilnější alternativní implementace pro CPython, protože Pyston je vidličkou hlavní kódové základny CPython.
píst podporuje všechny funkce CPython, včetně C API pro vývoj rozšíření C. Pyston byl původně vyvinut společností Dropbox, která se v roce 2017 rozhodla ukončit interní vývoj. Začátkem roku 2020 založili svou společnost přední vývojáři společnosti Pyston, zcela znovuobjevili projekt a začali pracovat v Pystonu na plný úvazek.
Technické podrobnosti o polstrování Pyston 2 ještě nejsou poskytnuty, jsou zmíněny pouze DynASM JIT, vložené ukládání do mezipaměti a obecné optimalizace CPython. Předchozí verze Pystonu používala jednu metodu JIT, podobnou JIT v moderních motorech JavaScriptu.
V JIT byl kód Pythonu analyzován a přeložen na mezilehlou reprezentaci LLVM (IR, mezilehlá reprezentace). Dále byla IR reprezentace zpracována v optimalizátoru LLVM a předána k provedení LLVM JIT motoru, který převedl IR reprezentaci do strojového kódu.
K získání informací o typech proměnných pro programy v dynamickém jazyce Python byla použita technika pravděpodobnostní predikce typů objektů, následovaná objasněním správné volby typu během provádění.
Proto Pyston neustále měnil provádění mezi dvěma větvemi: rychlou, když jsou potvrzeny předpokládané rychlosti, a pomalou, která se používá v případě nesouladu typů.
Úlohu lze provést v režimu s více vlákny, umožňující paralelní provádění několika podprocesů kódu v jazyce Python a bez globálního zámku tlumočníka (GIL)
Konečně pokud o tom chcete vědět víc, můžete zkontrolovat podrobnosti v následující odkaz.