JProfiler帮助文档

比较快照


将当前应用程序的运行时特性与以前的版本进行比较,是防止性能倒退的一种常见质量保证技术。 它也有助于解决单个分析会话范围内的性能问题,在这种情况下,你可能想比较两个不同用例,并找出为什么一个比另一个慢。 在这两种情况下,你可以保存携带感兴趣的记录数据的快照,并通过调用会话→在新窗口中比较快照或 点击启动中心中打开快照选项卡上比较多个快照按钮在JProfiler中使用快照比较功能。

选择快照

比较是在一个单独的顶层窗口中创建和查看的。首先,你需要在快照选择器中添加一些快照, 然后可以通过选择感兴趣的快照并点击比较工具栏按钮,创建快照列表中两个或多个快照的比较。 列表中快照文件的顺序是很重要的,因为所有的比较都会假设列表中靠后的快照被记录的时间更迟。 除了手动排列快照外,你还可以按名称或创建时间对快照进行排序。

与JProfiler主窗口中的视图不同,比较视图有固定的视图参数,显示在顶部,而不是下拉列表,让你动态调整参数。 所有的比较都会显示收集比较参数的向导,你可以用相同的参数多次执行相同的比较。这些向导会记住以前调用的参数, 所以如果你比较几组快照,你不必重复配置。在任何时候,你都可以使用快捷完成按钮或 点击索引中的步骤跳转到另一个步骤。

当比较处于活动状态时,被分析的快照会以数字前缀显示。对于使用两个快照的比较,显示的差异是快照2的测量值减去快照1的测量值。

对于CPU的比较,可以使用相同的快照作为第一个和第二个快照,并在向导中选择不同的线程或线程组。

比较表格

最简单的比较是"对象"内存比较。它可以从"所有对象"、"记录的对象"或堆遍历的"类"视图中比较数据。 比较中的列会显示实例计数和大小的差值,但只有 实例计数栏中显示的是双向条形图, 其中增加的部分用红色画在右边,而减少的部分用绿色画在左边。

在视图设置对话框中,你可以选择是要让此条形图显示绝对变化还是百分比。另一个值会在括号中显示。 该设置还决定了列的排序方式。

第一个数据列中的测量值称为主测量值,你可以在视图设置中将其从默认的实例计数切换为浅层大小。

该表的上下文菜单为你提供了一个进入其他具有相同比较参数、针对所选类的内存比较的快捷方式。

和对象比较一样,CPU热点、探针热点和分配热点的比较也在类似的表格中显示。

比较树

对于每个CPU调用树、分配调用树和探针调用树,你都可以计算出另一棵树,显示所选快照之间的差异。 与常规的调用树视图相比,内联条形图现在显示的是变化,用红色表示增加,或者用绿色表示减少。

根据手头的任务,如果你只看到两个快照文件中都存在的调用堆栈, 和一个快照到另一个快照的变化,可能会使你更容易。你可以在视图设置对话框中更改此行为。

对于CPU和探针调用树的比较,比较平均时间而不是总时间可能会更有用。这是向导的"视图参数"步骤中的一个选项。

遥测比较

对于遥测比较,你可以同时比较两个以上的快照。如果你没有在快照选择器中选择任何快照,向导将认为你想比较所有快照。 遥测比较没有时间轴,而是将所选快照的编号显示为X轴序数。工具提示包含快照的全名。

比较从每个快照中提取一个数字。由于遥测数据是有时间分辨率的,所以有多种方法可以做到这一点。 向导的"比较类型"步骤为你提供了使用保存快照时的值、计算最大值或在选定的书签处查找值的选项。