13.1.3 性能分析器
KeilµVision3集成开发环境中,内建了性能分析器,如图13.4所示。性能分析器用于在程序运行时,统计各个函数或者程序模块的执行次数及运行时间,以便找到程序最耗时的部分进行优化。
图 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.5 性能分析器窗口
图 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.7 性能分析器统计结果