Programování

Překladač Nuitka Python-to-C připravuje velké zvýšení výkonu

Nuitka, kompilátor, který transformuje Python na C kvůli zvýšení výkonu a přenosnějšímu běhu, dosáhl svého vydání 0.6 - milníku, který vytváří základy pro budoucí zvýšení výkonu. Jak řekla vývojářka Nuitka Kay Hayen: „Zlepšení výkonu je pravděpodobné v každém příštím vydání.“

Nuitka 0.6 aplikuje optimalizace na Python bool typy (true / false), takže kód, který je používá, lze snížit na nejúčinnější možný kód C. The bool optimalizace přicházejí jako předehra k podobným optimalizacím pro jiné typy proměnných.

Nuitka, stejně jako Cython, kompiluje program Pythonu do C a spojuje výsledný spustitelný soubor s runtime Pythonu pro maximální kompatibilitu. Podporovány jsou všechny verze Pythonu 2.6, 2.7 a 3.3 až 3.7, včetně konstrukcí jako asynchronní.

Programy v Pythonu kompilované s Nuitkou mohou těžit z velkých zvýšení výkonu. Hayen tvrdí, že verze testu Pystone zkompilovaná Nuitkou běží o 312 procent rychleji než běžná implementace CPython.

Hayen však varuje, že nejvýznamnější vylepšení výkonu čekají na příchod odvozování typů v Nuitce, což umožňuje úplný překlad určitých typů objektů Pythonu do nativních verzí C.

Díky dynamice Pythonu je mnoho druhů optimalizací ze své podstaty obtížné. Mnoho optimalizací pro Cython vyžaduje pro nejlepší výsledky velké vedení a specializovanou syntaxi anotací. Projekt Nuitka si klade za cíl poskytnout stejné druhy optimalizací, aniž by musel vývojář anotovat kód.

Další běžně používaný akcelerátor Pythonu, PyPy, pracuje tak, že kompiluje kód Pythonu za účelem just-in-time. Ale PyPy funguje nejlépe pro místní optimalizaci; není vhodný pro kompilaci aplikace v Pythonu, která je nasazena samostatně. Nuitka generuje samostatné spustitelné soubory. Jedním z jejích možných případů použití je zabalení aplikace Pythonu pro distribuci třetích stran.

Mezi další vylepšení v Nuitce 0.6 patří podpora pro Windows pro kompilátory Clang, Microsoft Visual C ++ a Cygwin, ukládání souborů objektů do mezipaměti pro rychlejší rekompilaci (opět ve Windows) a automatické formátování generovaného C kódu vclang-format pro čitelnost.