Skip to content

[PyCharm] 中使用 Profile 功能分析程式效能

Last Updated on 2021-05-19 by Clay

在開發程式的過程中,我們除了小心翼翼地解決程式當中的 Bug 外,在寫好程式、能夠正常運行以後,我們也常常會憂心於程式的『執行效率』。

所幸,在 PyCharm 這個好用的 IDE 中,我們可以通過 Profile 這個功能來簡單地分析程式的項能。

如果對於 PyCharm 感興趣,可以參考我之前寫過的《Python IDE PyCharm 安裝教學》


簡單方式

在開始說明 PyCharm 的 Profile 之前,我想簡單地紀錄另一個比較程式好壞的方法。

比如說,今天我們的程式是一個『解決問題』的程式,開始執行之後會嘗試解決、解決完之後便中止——若是這樣的程式,我們可以簡單地通過比較執行時間來判斷程式好壞。

在 Linux 系統底下,可以直接使用 time 指令來顯示 runtime。比如說:

time python3 your_program.py

如果想要直接將測試時間寫在程式當中,可以試試看使用 time 模組:

import time

start_time = time.time()

# Your Code ...


print('Cost Time: {}s'.format(time.time()-start_time))





Profile

使用 PyCharm 當中的 Profile 其實非常簡單,在 PyCharm 的右上角有著這樣的圖示:

這個便是 Profile 的執行按鈕,按下去之後程式會開始執行。如果沒有任何除了運行時的 Log 以外的視窗出現,請按下方圖中的按鈕:

通常來講,會印出像以下這樣的表格:

有 3 個欄位,分別為:

  • Call Count
  • Time (ms)
  • Own Time (ms)

其中 Call Count 很好理解,就是該區域被呼叫的次數。另外 Time 跟 Own Time 其實我並沒有很清楚兩者之間的差別,不過看網路上大家的意見傾向於先優化 Own Time 高者。

另外,還可以看到 Call Graph:

例如我這個程式,就應該集中優化 main.py 這個主程式的部份。

Leave a Reply