2013-07-23 113 views
0

我打算使用python來構建一些程序來用作服務,稍後從PHP代碼運行。 就性能而言,速度更快,使用cx_freeze將python代碼編譯爲二進制文件或每次運行該程序時都運行python解釋器?編譯的二進制文件VS解釋的代碼python

部署環境:
OS: Arch Linux的ARM
設備:樹莓裨[700MHz的ARMv6的CPU,256MB RAM,SD卡的文件系統]
Python解釋: Python2.7
應用程序調用頻率:

+0

只需運行解釋程序... afaik cx_freeze只是解包所有內容並運行其自己的解釋器 –

+2

系統性能差異很大 - 如果包含有關部署環境的一些詳細信息,可能會有所幫助。 – Prime

+0

@Prime我編輯了這個問題以提供更多信息 –

回答

3

您需要測試它,因爲沒有單一的正確答案。所有的cx_freeze所做的都是把字節碼包裝到可執行文件中,而解釋器則從磁盤上緩存的.pyc文件中讀取。

理論上,打包的可執行文件可能會更快,因爲它讀取的文件更少,但另一方面,解釋器可能更快,因爲它可能已經在磁盤緩存中。

有可能沒有多少選擇,不管它們有什麼不同,它不是「編譯」與「解釋」的關係。

3

cx_freeze(以及用於將Python代碼「編譯」爲可執行文件的各種競爭對手)不要實際編譯任何東西。它們只是將應用打包成可以直接運行的便捷方式。換句話說,沒有性能差異。

根據你的Python腳本需要做什麼,你可以考慮使用Pypy來提高你的性能。

相關問題