2017-12-27 144 views
-1

在過去的幾天中,我在與Nuitka一起工作,Nuitka是一種將Python編譯爲可執行的C/C++程序的工具。PyPy與Nuitka

我還沒有發現Nuitka的速度優勢(與PyPy相比)。那麼,Nuitka的含義是什麼?我錯過了什麼嗎?

回答

3

Nuitka和PyPy有非常不同的目標。

Nuitka使用python C-API將您的python項目提前(AOT)編譯爲C。通過這種方式,它更像Cython。它仍然是一個年輕的項目,但令人印象深刻的是,它完全兼容了龐大的python語言規範。下一步將是在編譯器過程中啓用優化,就像gcc -O3一樣。請注意,Nuitka用於將您的Python代碼轉換爲可執行文件。然後,您將可執行文件「運送」出來,並對原始python代碼進行一定程度的渲染。

PyPy確實正在運行代碼彙編到程序集(JIT)。它追蹤您的運行代碼,識別熱點,並生成程序熱門部分的更快版本。它也與Python語言規範完全兼容。它不會提前轉換你的python代碼,所以你把你的python代碼作爲最終產品「運送」出來。

我預計這兩個項目都將繼續提高執行速度,但它們針對的是非常不同的需求。