13.1.3 性能分析器

KeilµVision3集成开发环境中,内建了性能分析器,如图13.4所示。性能分析器用于在程序运行时,统计各个函数或者程序模块的执行次数及运行时间,以便找到程序最耗时的部分进行优化。

13.1.3 性能分析器 - 图1

图 13.4 性能分析器

其中,<unspecified>表示没有指定的函数或模块,其余的均为指定的函数或模块。对于每个函数或程序模块,性能分析器中以条状图显示其占用的时间比例。如果单击选中其中某个函数,则下面的状态栏中显示了该函数或程序模块的统计数据,其含义如下所示。

❑“min time”:函数或程序模块占用的最小时间。

❑“max time”:函数或程序模块占用的最大时间。

❑“avg time”:函数或程序模块占用的平均时间。

❑“total time”:函数或程序模块占用的总时间。

❑“%”:函数或程序模块占用时间的比例。

❑“count”:函数或模块执行的次数。

在KeilµVision3集成开发环境中,使用性能分析器的步骤如下。

(1)选择“Debug”→“Start/Stop Debug Session”命令,进入程序仿真调试模式。

提示在“文件工具栏”右侧也有“Start/Stop Debug Session”菜单命令对应的按钮,通过该按钮可快速进入调试状态。

(2)选择“View”→“Performance Analyzer Window”命令,打开性能分析器,如图13.5所示。此时,性能分析器中没有指定任何函数或者程序模块。

(3)右击性能分析器窗口,选择“Setup PA”命令,打开“Setup Performance Analyzer”对话框,如图13.6所示。在“Setup Performance Analyzer”对话框中,“Function Symbols”列出了所有的函数或者程序模块,“Current PA Ranges”列出了当前的性能分析范围,“Define Performance Analyzer Range”为定义一个性能分析函数。

13.1.3 性能分析器 - 图2

图 13.5 性能分析器窗口

13.1.3 性能分析器 - 图3

图 13.6 “Setup Performance Analyzer”对话框

(4)在“Setup Performance Analyzer”对话框的“Function Symbols”中,双击需要分析的函数,将其添加到“Define Performance Analyzer Range”文本框。

(5)单击“Define”按钮,将选中的函数或程序模块添加到“Current PA Ranges”中。

(6)单击“Close”按钮,关闭“Setup Performance Analyzer”对话框。

(7)选择“Debug”→“Run”命令,程序便开始仿真执行。此时,便可以看到性能分析器的统计结果,如图13.7所示。当然,也可以单步执行程序来查看性能分析器的统计结果。

在性能分析器窗口中,以条状图显示了选中的函数或者程序模块执行所消耗CPU时间的比例。从图中可以看出,延时函数DelayMs消耗单片机CPU的时间最长。

13.1.3 性能分析器 - 图4

图 13.7 性能分析器统计结果