MATLAB程序的运行分析

MATLAB 提供了两种方法进行程序的优化,一种是通过 Profiler 工具进行,另一种是通过 tic 和 toc 函数进行。本节将介绍这两种程序运行分析的方法。

通过 Profiler 进行程序运行分析

Profiler 工具为 MATLAB 中的图形用户接口,用于分析程序运行时各个部分所消耗的时间,辅助用户进行程序优化。

Profiler 可以从以下几个方面提供程序运行信息。
  • 避免由于疏忽造成的非必要操作。
  • 替换运行较慢的算法,选择快速算法。
  • 通过存储变量的方式避免重复计算。

通过 Profiler 工具进行程序运行分析通常按以下步骤进行。
  1. 查看Profiler生成的通体报告,查找运行时间最多的函数或调用最频繁的函数。
  2. 查看这些函数的详细报告,查找其中运行时间最多的语句或调用最频繁的语句。
  3. 确定运行时间最多的函数或代码是否存在改进的可能。
  4. 单击界面链接,打开相应文件进行修改。
  5. 重复进行上述的分析、修改,直至得到满意结果。

下面介绍 Profiler 工具的具体使用。

打开 Profiler

MATLAB 中可以通过以下方式打开 Profiler。
  • 单击 MATLAB 工具栏中的“运行并计时”图标,激活 Profiler 工具。
  • 对于在编辑器中打开的 M 文件,单击“运行并计时”图标。
  • 在命令行窗口中输入 profile viewer。

运行 Profiler

Profiler 工具界面如下图所示。

在“运行此代码”中输入需要分析的命令或表达式,单击“启动探查”按钮,开始分析。

查看分析结果

分析完成后,Profiler 会生成分析报告,包括总体报告和针对每个函数的详细报告。总体报告中包括函数名、被调用次数、总运行时间、函数单独运行时间(即不包含其子函数的运行时间)及函数运行时间的图形显示,如下图所示。

用户可以单击每列的标题改变结果的排序方式,也可以单击函数标题查看该函数的详细报告。

函数详细报告中包括该函数中每行代码的被调用次数和运行时间,并且可以显示其中的子函数、函数列表等,如下图所示。

另外,用户可以单击“复制到新窗口以比较多次运行情况”将该结果保存至新的窗口中,用于修改代码后进行再次分析、比较。

通过 tic 函数和 toc 函数进行程序运行分析

如果只需要了解程序的运行时间,或者比较一段程序在不同应用条件下的运行速度,可以通过计时器来进行。

计时器包含两个函数:tic 函数和 toc 函数。tic 函数用于开始计时器,toc 函数用于关闭计时器,并计算程序运行的总时间。

计时器函数的语法为:

tic
    any statements    %所需计时的程序代码
toc
t = toc    %保存计时时间