练习 1.2:收集性能和覆盖率数据
在开始之前,必须完成练习 1.1:导入必需的资源。
情形:要求调查 Java 项目,因为它的性能不稳定。项目包括冒泡排序和快速排序。令人意料不到的是,冒泡排序比快速排序还快。您的任务是使用
Software Development Platform 中的运行时分析工具来找出产生这种现象的原因。
由于存在性能问题,您决定收集性能数据以供在“性能调用图”视图中显示。您还决定同时收集方法和行代码覆盖率数据。收集覆盖率数据有助于确保您测试代码的所有部分。
准备收集性能和覆盖率数据
要收集性能和覆盖率数据,必须处于“概要分析和记录”透视图中。
要切换到“概要分析和记录”透视图:
- 从 Software Development Platform 菜单栏中选择窗口 > 打开透视图 > 其它。
“选择透视图”对话框打开。
- 在对话框左下方,单击全部显示。
一个选择标记将出现在复选框中。
- 从透视图列表中选择概要分析和记录,然后单击确定。
- 如果“确认启用”对话框打开,则单击始终启用功能,不要再次询问我,然后单击确定。
Software Development Platform 就切换到“概要分析和记录”透视图。
收集 sort 应用程序的性能和覆盖率数据
以下过程运行 sort 应用程序并收集性能数据以识别性能较慢以致产生意外结果的区域。它还收集方法和行代码覆盖率数据,此数据显示是否运用了应用程序的所有部分。
要收集性能和覆盖率数据:
- 从 Software Development Platform 菜单栏中,选择窗口 > 显示视图 > 控制台以打开“控制台”视图。“控制台”视图允许您跟随应用程序的处理过程。
- 创建概要分析配置。(概要分析配置是一组可再用的指示信息,用于从特定项目收集数据。)
- 从菜单栏中选择运行 > 概要文件。
“概要文件”对话框打开。
- 在“配置”列表中,双击 Java 应用程序条目。
New_configuration 条目出现。
- 在“名称”字段中,输入 sort_perf_plus_cov。
- 在“主要”选项卡中,如果“项目”字段中尚未输入 Sort,则执行以下操作:
- 单击“项目”字段旁边的浏览。
“选择项目”对话框打开。
- 选择 Sort,然后单击确定。
- 单击“Main 类”字段旁边的搜索。
- 在“选择主要类型”对话框中,选择 Sort,然后单击确定。
- 在“概要分析”对话框中,单击“概要分析”选项卡。
- 在“概述”子选项卡中,单击添加以添加概要分析集。(概要分析集定义对运行要收集的概要分析数据的类型。)
“添加概要分析集”对话框打开。
- 对于“概要分析集名称”,输入性能和覆盖率。
- 单击下一步。
- 展开代码覆盖率条目。
- 选择方法和行代码覆盖率复选框。
- 在“方法和行代码覆盖率”页中,选择已激活计数方式的复选框。(这允许您不仅可以按是否涉及到方法或类收集数据,而且可以按使用该方法或类的次数收集数据。)
- 展开时间分析条目。
- 选择执行时间分析复选框。
- 在“执行时间分析”页中,选择显示执行流图详细信息单选按钮。
- 确保不检查其它概要分析类型,然后单击完成。
现在,概要分析集包含两种概要分析类型(“执行时间分析”和“方法和行代码覆盖率”)。
- 单击概要分析。
应用程序就会运行并显示更改,如下所示:
- 在“概要分析监视器”中添加了概要分析资源。
- “控制台”视图显示运行的输出。
注意:如果接收到“没有代理控制器”安全性消息,请阅读如果无法收集数据。
输出类似如下:
***************************************
Median of 10000 sorted numbers is : -22682115
*****************************************
***************************************
Median of 10000 sorted numbers is : -22682115
*****************************************
如果无法收集数据
必须先运行“代理控制器”才能收集任何种类的概要分析数据。如果接收到“没有代理控制器”消息,确保已安装“代理控制器”,手工启动它,然后再试。有关指示信息,请参阅安装指南。可以通过使用安装启动板访问安装指南,也可以在产品 CD 的 disk1/install.html 中找到它。
在收集了数据之后,您就可以开始进行练习 1.3:识别性能瓶颈了。