回覆列表
  • 1 # 使用者8378359388800

    首先,pyc和pyo都是由.py檔案生成的位元組碼檔案。pyo相比pyc,少了斷言和debug資訊,在體積上小一些。還有,在python3.5之後已經不是.pyo檔案,而是.opt-1.pyc形式。

    編譯過程只是把python原始碼編譯轉化為位元組碼,位元組碼需透過直譯器連線轉化為機器碼執行。這也是python為什麼可以跨平臺的原因。

    關於為什麼不能編譯為平臺可執行檔案,對著這個問題找了些資料,發現還真的可以。

    安裝pyinstaller,如下:

    安裝成功後,用經典的Hello World程式碼測試下。index.py檔案內容如下:

    使用pyinstaller將.py檔案編譯成二進位制檔案,然後執行下,如下:

    順利打印出了 Hello World,一切正常。

    那效能如何呢?接下來分別測試下.py、.pyc、opt-1.pyc和二進位制四種執行方式的執行時間。

    .py檔案

    耗時0.030s

    .pyc檔案

    耗時0.029s

    opt-1.pyc

    耗時0.029s

    二進位制檔案

    耗時0.020s。

    總結

    四種執行方式,前三種的時間差異很小,可見原始碼到位元組碼的轉化時間很短。當編譯成二進位制可檔案執行時間縮小了很多,效能提升還是挺明顯的。

    測試的比較粗糙,pyinstaller第一次使用,你可以自己再仔細研究研究它的文件。

    PyInstaller Manual

  • 中秋節和大豐收的關聯?
  • 搶什麼奪什麼,成語?