目录
2.4分析完成后,“概要文件摘要”报告将显示在“概要文件”窗口中
一、什么是性能分析?
性能分析是一种衡量程序在哪里花费时间的方法。 在确定哪些功能消耗最多的时间后,可以评估它们以改善性能。 另外,可以将代码配置为调试工具。
可以使用MATLAB Profiler来分析代码。 探查器是基于探查函数返回的结果的用户界面。 如果要分析并行运行的代码,则为了获得最佳结果,请使用Parallel Computing Toolbox™并行事件探查器。
二、分析过程和准则
1.使用以下一般过程来提高代码的性能
a.在代码上运行Profiler。
b.在“概要摘要”报告中,查找占用大量时间或最常调用的函数。
c.查看“概要文件详细信息”报告以了解这些功能,并查找花费最多时间或最常被调用的代码行。
d.考虑保留您的第一份详细报告的副本作为比较的基础。更改代码后,可以再次运行Profiler并比较报告。
e.确定是否可以对这些代码行进行更改以提高性能。
例如,如果循环中有一个load语句,则可以将load语句移到循环外,这样它只能被调用一次。
在代码中实现潜在的性能改进。保存文件,然后清除所有内容。再次运行Profiler,并将结果与原始报告进行比较。
如果两次分析同一代码,则由于不依赖于代码的固有时间波动,每次得到的结果都会略有不同。
要继续提高代码的性能,请重复这些步骤。
2.使用探查器(Profiler)
要分析MATLAB代码文件或代码行:
2.1使用以下方法之一打开探查器
- 在命令窗口中,键入配置文件查看器。
- 在“主页”选项卡上的“代码”部分,单击“运行和时间”。
- 在编辑器的“编辑器”选项卡上的“运行”部分,单击“运行和时间”。 如果使用此方法,则探查器会自动在当前“编辑器”选项卡中探查代码。 如果这是您要分析的代码,请跳到步骤2.4。
2.2在“运行此代码”字段中,键入要运行的语句
可以运行MATLAB随附的Lotka-Volterra示例:
[t,y] = ode23('lotka',[0 2],[20;20])
如果在当前的MATLAB会话中先前已对语句进行了概要分析,请从“运行此代码”列表中选择该语句。 MATLAB自动开始分析代码,可以跳至步骤2.4。
2.3单击开始分析
- 在探查器运行时,探查时间指示器为绿色,并且报告的秒数增加。 “分析时间”指示器出现在“分析器”窗口的右上方。
- 当探查器完成时,探查时间指示器将变黑,并显示探查器运行的时间长度。 分析的语句显示为已在“命令窗口”中执行。
该时间不是语句运行的实际时间。 这是从单击“开始分析”到分析停止所经过的时间。 如果报告的时间与预期的时间有很大差异(例如,简单的陈述需要几百秒的时间),则可能需要更长的分析时间。 此时间与“概要摘要”报告统计信息中报告的时间不匹配,该时间默认情况下基于性能时钟时间。 要使用其他类型的时钟查看配置文件统计信息,请使用配置文件功能而不是Profiler。
2.4分析完成后,“概要文件摘要”报告将显示在“概要文件”窗口中
有关更多信息,请参阅概要摘要报告。
“配置文件摘要”报告显示以下信息。
项目 | 详情 |
函数名称 | 概要文件代码调用的所有功能的列表。 最初,功能按其处理时间的顺序显示。 |
调用 | 概要分析代码调用该函数的次数。 |
总时间 | 一个函数(包括所有已访问的子函数)所花费的总时间(以秒为单位)。 功能的时间包括在子功能上花费的时间。 探查器本身需要一些时间,这包含在结果中。 对于运行时间无关紧要的文件,总时间可以为零。 |
自调时间 | 一个函数花费的总时间(以秒为单位),不包括任何子函数花费的时间。 自调时间还包括分析过程中产生的一些时间开销。 |
图形 | 图形显示显示了自己的时间与总时间的对比。 |