
透過效能分析找出瓶頸
|
29
我們的結果顯示,呼叫
calc_pure_python
的總成本為 13.1 秒(最好的情況),而先前以
@timefn
裝飾器量測到單一的
calculate_z_serial_purepython
呼叫花費 12.2 秒,主要的
差異是建立
zs
與
cs
串列所花費的時間。
在 IPython 裡,我們能夠以相同的方式使用神奇的
%timeit
。假如你正在 IPython 裡以互
動的方式開發你的程式碼,而函式位在區域的名稱空間中(可能因為你在使用
%run
),
那麼,你就可以使用︰
%timeit calc_pure_python(desired_width=1000, max_iterations=300)
值得考量一般電腦上的負載變異,許多在背景執行的任務(例如,Dropbox、backups)
都會隨機地影響 CPU 與磁碟資源。網頁裡的指令稿也會引起無可預測的資源耗用。圖
2-4 顯示單一 CPU 因為我們所執行的某些計時步驟而達到 100% 的使用率;而此機器上
的其他核心則各自輕鬆地處理其他任務。
圖 2-4 Ubuntu 上的 System Monitor 顯示在計時我們的函式時的 CPU 使用率變化
偶爾,System Monitor 顯示出機器上的活動尖峰,最好觀察你的 System Monitor,確認
沒有其他東西在干擾你的重要資源(CPU,磁碟,網路)。
使用 Unix 的 time 指令做簡單的計時
我們可以暫時離開 Python,使用類 Unix 系統上的標準系統工具。下面內容將針對程式 ...