使用 Profiler 識別效能瓶頸

MATLAB Profiler 是一個用於 MATLAB 程式碼軟體分析的工具。使用 Profiler,可以獲得執行時間和記憶體消耗的直觀表示。

執行 Profiler 可以通過兩種方式完成:

  • 單擊 MATLAB GUI 中的執行和時間按鈕,同時在編輯器中開啟一些 .m 檔案(在 R2012b 中新增 )。

    StackOverflow 文件

  • 以程式設計方式,使用:

    profile on
    <some code we want to test>
    profile off
    

下面是一些示例程式碼及其分析結果:

function docTest

for ind1 = 1:100
  [~] = var(...
            sum(...
                randn(1000)));
end

spy

StackOverflow 文件

從上面我們瞭解到,spy 函式佔總執行時間的 25%左右。在真實程式碼的情況下,佔用如此大百分比的執行時間的函式將是優化的良好候選者,而不是類似於應該避免優化的 varcla 的函式。

此外,可以單擊“ 功能名稱” 列中的條目以檢視該條目的執行時間的詳細分類。這是點選 spy 的例子:

StackOverflow 文件

在執行 Profiler 之前,還可以通過執行 profile('-memory') 來分析記憶體消耗。

StackOverflow 文件