使用 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') 來分析記憶體消耗。
