使用 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')
来分析内存消耗。