Oracle® Developer Studio 12.5:性能分析器

退出打印视图

更新时间: 2016 年 6 月
 
 

过滤数据

打开实验时,可以看到程序的所有分析数据。利用过滤,可以从视图中临时删除不感兴趣的数据,从而可以聚焦于程序的特定区域或特性。

在一个视图中应用的过滤器会影响所有视图。例如,可以在 "Timeline"(时间线)视图中指定时间段过滤器,从而使 "Functions"(函数)等其他视图仅显示与过滤的时间段相关的度量。在视图中选择一个或多个项目,然后以每次一个的方式选择过滤器,以指定要包括在视图中的数据。

可以通过多种方法进行过滤:

  • 单击 "Filter"(过滤器) 按钮打开可以为当前数据视图中的所选项目应用的过滤器列表。

  • 右键单击数据视图中的一个项目,或在选中该项目时按 Shift-F10,然后选择要应用的过滤器。

  • 使用性能分析器左下角的 "Filters"(过滤器)面板查看已经应用的过滤器并进行添加或删除。

可以将各个过滤器结合使用,显示非常具有针对性的程序运行区域的度量。例如,可以在 "Functions"(函数)视图中应用一个过滤器并在 "Timeline"(时间线)视图中应用一个过滤器,以便聚焦于包括程序运行的特定时间段中特定函数的调用堆栈。

使用过滤器时,会在所有性能分析器视图中过滤数据,但 "MPI Timeline"(MPI 时间线)视图除外,该视图具有不与其他数据视图交互的单独过滤机制。

对性能分析器具有丰富经验的用户还可以使用 "Advanced Custom Filters"(高级定制过滤器)对话框编辑过滤器表达式创建定制过滤器,从而精确定义要显示的数据。


注 -  此处所述的过滤器不同于MPI Timeline Controls(MPI 时间线控件)MPI Chart Controls(MPI 图表控件)中所述的 MPI 过滤。这些过滤器不会影响 "MPI Timeline"(MPI 时间线)视图和 "MPI Chart"(MPI 图表)视图。

使用过滤器

在性能分析器的大多数数据视图中都可以使用过滤器。使用工具栏或 "Active Filters"(活动过滤器)面板上的 "Filters"(过滤器)按钮,或单击鼠标右键或者在键盘上按 Shift-F10 可访问过滤器。添加过滤器后,将立即过滤数据。

使用过滤器时,通常在视图中选择一项或多项您希望重点关注的项目,然后选择合适的过滤器。对于大多数视图,使用过滤器可以包括或排除满足在过滤器中指定的标准的数据。这样,您便可以使用过滤器,将重点放在程序特定区域中的数据,或者排除特定区域的数据。

    一些使用过滤器的方法包括:

  • 添加多个过滤器来缩小数据的范围。过滤器按照逻辑 AND 的关系进行组合,这种逻辑关系要求数据与所有过滤器匹配。

  • 在一个视图上添加过滤器,然后在另一个视图上检查过滤后的数据。例如,在 "Call Tree"(调用树)视图中,可以查找最热的分支,并选择 "Add Filter: Include only stacks containing the selected branch"(添加过滤器:仅包括含有所选分支的堆栈),然后转到 "Function"(函数)视图即可查看在该代码分支中调用的函数的度量。

  • 在多个视图中添加多个过滤器可以创建非常具有针对性的数据集。

  • 使用过滤器作为基础来创建高级定制过滤器。请参见使用高级定制过滤器

使用高级定制过滤器

在性能分析器数据视图中添加过滤器时,将生成过滤器表达式,并且会立即应用来过滤数据。生成的过滤器表达式在 "Advanced Custom Filter"(高级定制过滤器)对话框中可见。经验丰富的用户可以将这些生成的过滤器表达式用作创建定制过滤器的起点。

    创建定制过滤器:

  1. 通过执行以下操作之一打开 "Advanced Custom Filter"(高级定制过滤器)对话框:

    • 单击 "Filter"(过滤器)按钮并选择 "Add Filter: Advanced Custom Filter"(添加过滤器:高级定制过滤器)

    • 选择 "Tools"(工具)⇒ "Filters"(过滤器)⇒ "Add Filter: Advanced Custom Filter"(添加过滤器:高级定制过滤器)

  2. 在 "Filter Specification"(过滤器规范)文本框中单击并编辑过滤器。有关过滤器的更多信息,请参见下文。

  3. 如有必要,使用方向键撤消或重做编辑。

  4. 单击 "OK"(确定)根据过滤器表达式过滤数据并关闭对话框。

"Filter Specification"(过滤器规范)面板显示以前应用的过滤器(通过在性能分析器数据视图中选择相应的过滤器)的过滤器表达式。可以编辑这些过滤器,并使用顶部的箭头按钮撤消和重做所进行的编辑。您也可以采用与文本编辑器中相同的方法,按 Ctrl-Z 组合键进行撤消,按 Shift-Ctrl-Z 组合键进行重做。单击 "OK"(确定)时,这些过滤器仅影响数据视图。

将每个新过滤器放置在新行中,以逻辑 AND 运算符 && 开头。要显示实验数据,这些数据必须与第一个过滤器匹配、并且与第二个过滤器匹配、并且与第三个过滤器匹配,等等。

如果希望数据匹配第一个过滤器 OR 第二个过滤器,则可以将 && 更改为 ||

过滤器表达式使用标准的 C 关系运算符(==>=&&|| 等等)以及实验特定的关键字。"Advanced Custom Filters"(高级定制过滤器)对话框的 "Keywords"(关键字)面板中显示了可以在实验中使用的关键字。

有关过滤器关键字和过滤器表达式的更多信息,请搜索性能分析器帮助。

过滤器表达式语法与 er_print 中使用的过滤语法相同。有关过滤器表达式的信息,请参见表达式语法

使用标签进行过滤

标签是分配给实验的某一部分的名称。使用 er_label 命令,您可以将标签名分配给实验中的一段时间,而标签将保存在实验中。通过 er_print 命令或性能分析器,您可以使用标签来过滤实验数据,以便包含或排除在所标记时段内收集的数据。

有关如何使用 为实验加标签 实用程序创建标签的信息,请参见Labeling Experiments

在性能分析器中,可以在 "Advanced Custom Filter"(高级定制过滤器)对话框中过滤所标记的时间段的数据。在 "Filter Specification"(过滤器规范)面板中键入标签名称,然后单击 "Apply"(应用)来过滤标签所指定的数据。由于标签用作通过 TSTAMP 关键字使用数值进行比较的过滤器表达式的昵称,您无需进行任何数值比较。在 "Filter Specification"(过滤器规范)面板中,将标签添加到单独的行中并且在前面放置 &&,可以将标签与其他过滤器结合使用。

可以在 "Advanced Custom Filter"(高级定制过滤器)对话框的 "Keywords"(关键字)面板中查看在性能分析器中打开的实验是否分配了标签。您也可以使用 er_print -describe 命令查看相同的信息。标签在显示内容中将首先列出,并且包含实际过滤器表达式,该表达式带有由标签实施的 TSTAMP 关键字。

应用标签过滤器之后,可以单击 "Timeline"(时间线)视图以便查看按标签定义的间隔删除的数据。其他支持过滤的数据视图上也会对数据进行过滤。