使用 Profiler 識別效能瓶頸
MATLAB Profiler 是一個用於 MATLAB 程式碼軟體分析的工具。使用 Profiler,可以獲得執行時間和記憶體消耗的直觀表示。
執行 Profiler 可以通過兩種方式完成:
-
單擊 MATLAB GUI 中的執行和時間按鈕,同時在編輯器中開啟一些
.m
檔案(在 R2012b 中新增 )。 -
以程式設計方式,使用:
profile on <some code we want to test> profile off
下面是一些示例程式碼及其分析結果:
function docTest
for ind1 = 1:100
[~] = var(...
sum(...
randn(1000)));
end
spy
從上面我們瞭解到,spy
函式佔總執行時間的 25%左右。在真實程式碼的情況下,佔用如此大百分比的執行時間的函式將是優化的良好候選者,而不是類似於應該避免優化的 var
和 cla
的函式。
此外,可以單擊“ 功能名稱” 列中的條目以檢視該條目的執行時間的詳細分類。這是點選 spy
的例子:
在執行 Profiler 之前,還可以通過執行 profile('-memory')
來分析記憶體消耗。