如下列步骤所示,安装 PurifyPlus 是一个直截了当的过程:
图 1 例举了如何在安装 License Server 之后进行配置。License Server 应该为您的本地主机的名称。
图 1: 配置 License Server
4. 接下来,如图 2 所示,配置 License 使用映射程序(Settings > License Usage Mapper)。对于 Rational Purify、Quantify,和 PureCov,在右边的选项卡上,选择 Rational PurifyPlus for Windows,并且取消选择其他选项。
图 2: 配置 License Usage Mapper
5. 现在通过浏览您保存的位置导入 License Key 文件。您将在 License Key Administrator 向导中看到 License Key,如图 3 所示。
图 3: License Key Administrator 向导
现在,准备启动 PurifyPlus。
要让 PurifyPlus 在 .NET 上工作,您需要执行以下一些步骤:
首先选择 Start > All Programs 并且启动 IBM Rational PurifyPlus > Purify。图 4 显示了 Rational Purify 启动窗口。
图 4: 您启动 PurifyPlus 时的第一个窗口
对于托管代码,使用选项“Memory profiling data”。对于非托管代码,使用选项“Error and leak data”。
在执行您的应用程序的过程中,PurifyPlus 将依附在进程上。
当您在选择“Memory profiling data”选项的情况下运行应用程序时,PurifyPlus 将显示一张描述了内存使用量的图。您可以继续浏览您感兴趣的 Web 页面,并且同时您将注意到图上的变更。
举例来说,当加载 Web 页面时,图上的曲线将成指数级增长,这显示在加载 Web 页面时使用了巨大量的内存。当加载之后,图像将稳定,而在您浏览其他页面时再次变更。
一旦应用程序开始运行,结果将自动地显示。图 5 显示了 PurifyPlus 中的概要图。
图 5: 当 PurifyPlus 启动时的内存概要图
您可以为您正在分析的应用程序,在其运行过程中保存内存概要数据的“快照”,以便您可以之后更详细地观察。快照包含一组关于积累到一个具体时刻的程序状态和量度信息的数据。
要用 PurifyPlus 创建快照,只需在 Purify 工具栏中点击照相机图标。PurifyPlus 对当前数据进行快照,并且在 Navigator 中创建快照入口,同时继续记录数据。您可以将快照保存到 PurifyPlus 数据文件(.pmy) 或者保存到 ASCII 文本文件(.txt) 中。图 6 显示了 PurifyPlus 快照的样子。
图 6: PurifyPlus 快照
图 7 例举了 .NET 应用程序的 PurifyPlus 快照。
图 7: .NET 应用程序的快照 自 Rational PurifyPlus 的结果
PurifyPlus 提供许多不同的窗口来帮助您执行内存概要数据的详细分析,每个窗口如下详细介绍:
要显示 Data Browser 窗口,就在 Purify 菜单中选择 View > Data Browser,或单击您在 Navigator 中已经选择的执行的图标。您将在 Data Browser 窗口中看到 Memory 选项卡、Call graph 选项卡、Function List 视图、Object List 视图。
Memory 选项卡概述了程序的总内存使用,以及在运行过程中在哪里分配了多少内存(参见图 8)。
图 8: Memory 选项卡显示了描述在应用程序运行时使用的内存量的图。
Function List View 选项卡(参见图 9)列出了程序使用的所有函数和方法,没有按模块或文件分组。此视图帮助根据各种各样的标准对数据排序,并且帮助找到感兴趣的方法和函数,并且显示或隐藏(Show/Hide)它们。
图 9: Function List View 显示了应用程序调用的函数,以及它们使用的内存量。
函数默认从最高内存使用率到最低内存使用率,以便您可以集中到消耗最大内存的函数上。这些列可以按正序或倒序排序。
Call Graph 选项卡提供应用程序调用结构的图形表示(参见图 10)。它给出了在应用程序运行过程中使用的内存或 CPU 时间的整个描述。
图 10: 实例 Call Graph
Call Graph 选项卡显示了函数调用的序列,以及它们使用的内存。粗线和细线帮助您分别区分消耗内存多或少的函数(参见图 11)。Call Graph 还突出了从代价最高的函数回到程序的一开始的路径,较粗的线表示代价较高的路径。您可以根据各种各样的标准突出其他函数。
图 11: Call Graph 中的较粗的线表示内存密集的函数。
如果您双击任意这些方法(参见图 11 中的矩形框),您将看到如下所述的 Function Detail 窗口。
Data Browser 窗口中的 Object List 选项卡(参见图 12)列出了当前选择的内存概要数据集中的所有根对象,或者列出了单个对象引用树中的所有内存对象。
图 12: Object List 选项卡及其特性的实例
如果在 Settings 对话框的 PowerCheck 选项卡中选择了“Generate Object Reference Graph data”,并且在 Preferences 对话框的 Workspace 选项卡中选择了“Show Object List View”的话,才可以使用 Object List 选项卡。
如果您为对象收集数据,那么在 Purify 菜单中选择 View > Data Browser,或单击图标并选择 Object List View 选项卡来显示对象列表。
Object List View 可以显示以下信息:
要显示 Function Detail 窗口,在 Data Browser 窗口中单击 Call Graph 或 Function List View 选项卡,然后双击方法名,或者选择方法并单击图标。Function Detail 窗口显示关于具体的 Java 或 .NET 托管方法及其直接调用者和子调用的数据。
在该视图中以图形或表格形式显示的信息类型是(参见图 13):
图 13: Function Detail 窗口
只有当在 Settings 对话框的 PowerCheck 选项卡中选择了“Generate Object Reference Graph data”时,Object Details 窗口才可用(参见图 14)。
图 14: 选择“Generate object reference graph data”选项以查看 Object Details 窗口。
Object Details 窗口出现在您:
图 15: Object Details 视图图标的位置
图 16 显示了 Object Details 窗口的实例。
图 16: Object Details 窗口及其特性的实例
注意 Object List View 按如下进行分组和显示对象:
以下是一些使用 PurifyPlus 时要铭记于心的重点:
作为参考,这里概述了 PurifyPlus 在 .NET 环境中如何工作:
此处介绍了一些在 .NET 应用程序中检测到内存泄漏时查看源代码的技巧:
图 17: 设置选项查看源代码
您还可以在命令行设置
图 18 显示了如何查看源代码文件。
图 18: 如何查看源代码文件
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14780873/viewspace-586737/ ,如需转载,请注明出处,否则将追究法律责任。