Der Nuitka Python-to-C-Compiler bereitet große Leistungssteigerungen vor

Nuitka, ein Compiler, der Python aus Gründen der Leistungssteigerung und einer portableren Laufzeit in C umwandelt, hat seine Version 0.6 erreicht - ein Meilenstein, der die Grundlage für zukünftige Leistungssteigerungen bildet. Kay Hayen, Entwickler von Nuitka, sagte dazu: "Leistungsverbesserungen sind in jeder kommenden Version wahrscheinlich."

Nuitka 0.6 wendet Optimierungen auf Pythons boolTypen ( true/false) an, sodass der Code, der sie verwendet, auf den effizientesten C-Code reduziert werden kann. Die boolOptimierungen sind der Auftakt zu ähnlichen Optimierungen für andere Variablentypen.

Nuitka kompiliert wie Cython ein Python-Programm mit C und verknüpft die resultierende ausführbare Datei mit der Python-Laufzeit, um maximale Kompatibilität zu gewährleisten. Python-Versionen 2.6, 2.7 und 3.3 bis 3.7 werden unterstützt, einschließlich Konstruktionen wie async.

Mit Nuitka kompilierte Python-Programme können von großen Leistungssteigerungen profitieren. Hayen behauptet, dass eine von Nuitka kompilierte Version des Pystone-Benchmarks rund 312 Prozent schneller läuft als eine herkömmliche CPython-Implementierung.

Hayen warnt jedoch davor, dass die wichtigsten Leistungsverbesserungen auf die Einführung von Typinferenzen in Nuitka warten und die vollständige Übersetzung bestimmter Arten von Python-Objekten in native C-Versionen ermöglichen.

Die Dynamik von Python macht viele Arten von Optimierungen von Natur aus schwierig. Viele Cython-Optimierungen erfordern viel Anleitung und eine spezielle Anmerkungssyntax, um die besten Ergebnisse zu erzielen. Das Nuitka-Projekt zielt darauf ab, die gleichen Optimierungen bereitzustellen, ohne dass der Entwickler den Code mit Anmerkungen versehen muss.

Ein weiterer häufig verwendeter Python-Beschleuniger, PyPy, kompiliert Python-Code just-in-time für die Assembly. PyPy eignet sich jedoch am besten für die direkte Optimierung. Es ist nicht zum Kompilieren einer Python-App geeignet, die eigenständig bereitgestellt wird. Nuitka generiert eigenständige ausführbare Dateien. Einer der möglichen Anwendungsfälle ist das Packen einer Python-App für die Verteilung durch Dritte.

Weitere Verbesserungen in Nuitka 0.6 sind die Unterstützung der Clang-, Microsoft Visual C ++ - und Cygwin-Compiler unter Windows, das Zwischenspeichern von Objektdateien für eine schnellere Neukompilierung (auch unter Windows) und die automatische Formatierung des generierten C-Codes  clang-formatzur besseren Lesbarkeit.