Programovanie

Kompilátor Nuitka Python-to-C pripravuje veľké prírastky výkonu

Nuitka, kompilátor, ktorý transformuje Python na C kvôli zvýšeniu výkonu a prenosnejšej dobe behu, dosiahol vydanie 0.6 - míľnik, ktorý predstavuje základ pre budúce zvýšenie výkonu. Ako povedala vývojárka Nuitka Kay Hayen: „Zlepšenie výkonu je pravdepodobné v každom nasledujúcom vydaní.“

Nuitka 0.6 aplikuje optimalizácie na Python bool typy (pravda lož), aby bolo možné kód, ktorý ich používa, zredukovať na čo najefektívnejší kód C. The bool optimalizácie sú predstupňom podobných optimalizácií pre iné typy premenných.

Nuitka, podobne ako Cython, kompiluje program Python do C a výsledný spustiteľný súbor spája s runtimeom Python pre maximálnu kompatibilitu. Podporované sú všetky verzie Pythonu 2.6, 2.7 a 3.3 až 3.7 vrátane konštrukcií ako async.

Programy v jazyku Python kompilované s programom Nuitka môžu ťažiť z veľkého zvýšenia výkonu. Hayen tvrdí, že verzia benchmarku Pystone zostavená spoločnosťou Nuitka beží asi o 312 percent rýchlejšie ako bežná implementácia CPython.

Hayen však varuje, že najvýznamnejšie vylepšenia výkonu čakajú na príchod odvodenia typu v Nuitke, čo umožní úplný preklad určitých typov objektov Pythonu do natívnych verzií C.

Dynamika jazyka Python inherentne sťažuje mnoho druhov optimalizácií. Mnoho optimalizácií pre Cython vyžaduje pre najlepšie výsledky veľkú pomoc a špeciálnu syntax anotácií. Cieľom projektu Nuitka je poskytnúť rovnaké druhy optimalizácií bez toho, aby vývojár musel anotovať kód.

Ďalší bežne používaný akcelerátor Pythonu, PyPy, pracuje na kompilácii kódu Pythonu do formátu just-in-time. Ale PyPy funguje najlepšie pre optimalizáciu na mieste; nie je vhodný na kompiláciu aplikácie Python, ktorá je nasadená samostatne. Nuitka generuje samostatné spustiteľné súbory. Jedným z potenciálnych prípadov použitia je zabalenie aplikácie Python na distribúciu treťou stranou.

Medzi ďalšie vylepšenia v Nuitke 0.6 patrí podpora pre Windows pre kompilátory Clang, Microsoft Visual C ++ a Cygwin, ukladanie súborov objektov do pamäte cache pre rýchlejšiu opätovnú kompiláciu (opäť vo Windows) a automatické formátovanie vygenerovaného C kódu vclang-format kvôli čitateľnosti.

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