คอมไพเลอร์ Nuitka Python-to-C พร้อมรับประสิทธิภาพที่เพิ่มขึ้นอย่างมาก

Nuitka คอมไพเลอร์ที่แปลง Python เป็น C เพื่อเพิ่มประสิทธิภาพทั้งในด้านประสิทธิภาพและรันไทม์แบบพกพาได้มากขึ้นถึง 0.6 รีลีสซึ่งเป็นก้าวสำคัญที่วางรากฐานสำหรับการเพิ่มประสิทธิภาพในอนาคต ดังที่ Kay Hayen ผู้พัฒนา Nuitka กล่าวไว้ว่า“ มีแนวโน้มที่จะมีการปรับปรุงประสิทธิภาพในทุก ๆ รุ่นที่กำลังจะมาถึง”

Nuitka 0.6 ใช้การปรับให้เหมาะสมกับboolประเภทของ Python ( true/false) เพื่อให้โค้ดที่ใช้สามารถลดลงเป็นโค้ด C ที่มีประสิทธิภาพสูงสุดได้ การboolเพิ่มประสิทธิภาพมาพร้อมกับการเพิ่มประสิทธิภาพที่คล้ายกันสำหรับตัวแปรประเภทอื่น ๆ

Nuitka เช่น Cython รวบรวมโปรแกรม Python ไปยัง C และเชื่อมโยงผลลัพธ์ที่เรียกใช้งานได้กับรันไทม์ Python เพื่อความเข้ากันได้สูงสุด Python เวอร์ชัน 2.6, 2.7 และ 3.3 ถึง 3.7 ได้รับการสนับสนุนทั้งหมดรวมถึงโครงสร้างเช่นasync.

โปรแกรม Python ที่คอมไพล์ด้วย Nuitka จะได้รับประโยชน์จากการเพิ่มประสิทธิภาพขนาดใหญ่ Hayen อ้างว่าเกณฑ์มาตรฐาน Pystone เวอร์ชันที่รวบรวมโดย Nuitka ทำงานได้เร็วกว่าการใช้ CPython ทั่วไปถึง 312 เปอร์เซ็นต์

แต่ Hayen เตือนว่าการปรับปรุงประสิทธิภาพที่สำคัญที่สุดรอการมาถึงของประเภทการอนุมานใน Nuitka ทำให้สามารถแปลวัตถุ Python บางประเภทเป็นเวอร์ชัน C ดั้งเดิมได้อย่างสมบูรณ์

พลวัตของ Python ทำให้การเพิ่มประสิทธิภาพหลาย ๆ แบบทำได้ยากโดยเนื้อแท้ การเพิ่มประสิทธิภาพ Cython จำนวนมากต้องการคำแนะนำและไวยากรณ์คำอธิบายประกอบเฉพาะเพื่อผลลัพธ์ที่ดีที่สุด โครงการ Nuitka มีจุดมุ่งหมายเพื่อจัดเตรียมการเพิ่มประสิทธิภาพประเภทเดียวกันโดยไม่ต้องให้นักพัฒนาใส่คำอธิบายประกอบโค้ด

ตัวเร่งความเร็ว Python ที่ใช้กันทั่วไปคือ PyPy ทำงานโดยการรวบรวมโค้ด Python เข้ากับแอสเซมบลีแบบทันเวลา แต่ PyPy ทำงานได้ดีที่สุดสำหรับการเพิ่มประสิทธิภาพในสถานที่ ไม่เหมาะกับการรวบรวมแอป Python ที่ใช้งานแบบสแตนด์อะโลน Nuitka สร้างไฟล์ปฏิบัติการแบบสแตนด์อโลน หนึ่งในกรณีการใช้งานที่เป็นไปได้คือการบรรจุแอป Python สำหรับการแจกจ่ายของบุคคลที่สาม

การปรับปรุงอื่น ๆ ใน Nuitka 0.6 ได้แก่ การสนับสนุนบน Windows สำหรับคอมไพเลอร์ Clang, Microsoft Visual C ++ และ Cygwin การแคชไฟล์อ็อบเจ็กต์เพื่อการคอมไพล์ใหม่ที่เร็วขึ้น (อีกครั้งบน Windows) และการจัดรูปแบบอัตโนมัติของโค้ด C ที่สร้างขึ้น  clang-formatเพื่อให้อ่านง่าย