跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3:性能分析器 Oracle Solaris Studio 12.3 Information Library (简体中文) |
性能分析器提供了多种过滤数据的方法,使您可以将重点放在程序中感兴趣的区域上。在进行过滤时,需要为要查看的数据指定标准。应用过滤器之后,不满足标准的数据将从所有支持过滤的分析器标签的视图中删除。
在性能分析器中首次打开实验时,可以查看所有装入的实验中所有函数的数据、各个实验的所有线程和 CPU 以及实验涵盖的完整时间段。
可以按以下条件过滤:
实验—在当前装入的实验中选择要查看度量的实验
线程—选择从特定线程 ID 收集的数据
CPU—选择从特定 CPU ID 收集的数据
样本—选择在特定采样点收集的数据
调用堆栈—选择从包含特定函数的调用堆栈收集的数据
调用树分支—选择从来自调用树特定分支的调用堆栈收集的数据
时间范围—选择在特定时间范围内收集的数据
标签—选择由标识特定时段的标签指定的数据
可以从多个位置过滤:
在数据标签(例如 "Function"(函数)、"Callers-Callees"(调用方-被调用方)和 "Timeline"(时间线))中,右键单击标签中的数据(例如函数名称),从弹出菜单中选择预定义的过滤器。这种过滤器称为上下文过滤器。
使用 "Manage Filters"(管理过滤器)对话框的 "Experiments"(实验)和 "General"(常规)标签可以选择要显示相应数据的实验、线程、CPU 或样本。
使用 "Manage Filters"(管理过滤器)对话框的 "Custom"(定制)标签可以编辑过滤器表达式,以便创建用于精确定义要显示的数据的定制过滤器。
设置过滤器时,将过滤所有分析器标签中的数据。可以将各个过滤器结合使用,显示非常具有针对性的程序运行区域的度量。
注 - 此处所述的过滤器不同于`MPI Timeline Controls`(MPI 时间线控件)标签和"MPI 图表控件"标签中所述的 MPI 过滤。这些过滤器不会影响“MPI 时间线”标签和“MPI 图表”标签。
上下文过滤器是特定于上下文的过滤器,可在性能分析器的多个数据标签中使用。单击鼠标右键或者在键盘上按 Shift-F10 可访问上下文过滤器。选择上下文过滤器时,将立即过滤数据。
通常可以在标签中选择一项或多项您希望重点关注的内容,右键单击鼠标,然后选择合适的上下文过滤器即可使用。对于大多数数据标签,使用过滤器可以包括或排除满足在过滤器中指定的标准的数据。这样,您便可以使用过滤器,将重点放在程序特定区域中的数据,或者排除特定区域的数据。
一些使用上下文过滤器的方法包括:
添加多个过滤器来缩小数据的范围。过滤器按照逻辑 AND 的关系进行组合,这种逻辑关系要求数据与所有过滤器匹配。
在一个标签上添加过滤器,然后在另一个标签上查看过滤后的数据。例如,在 "Call Tree"(调用树)标签中,可以查找最热门的分支,然后选择 "Add Filter: Include only stacks from selected branch"(添加过滤器:仅包括所选分支的堆栈),然后转到 "Function"(函数)标签即可查看在该代码分支中调用的函数的度量。
从多个标签添加多个过滤器可以创建非常具有针对性的数据集。
以上下文过滤器为基础来创建定制过滤器。请参见...
使用 "Manage Filters"(管理过滤器)对话框可以对实验、线程、CPU 和样本执行简单的过滤。此过滤可以与上下文过滤器一起使用。
可以使用多种方式访问 "Manage Filters"(管理过滤器)对话框:
选择 "View"(查看)⇒ "Manage Filters"(管理过滤器)
在工具栏中单击 "Manage Filters"(管理过滤器)按钮
在数据标签(例如 "Function"(函数)标签)中右键单击,然后从上下文菜单中选择 "Manage Filters"(管理过滤器)
在 "Experiments"(实验)标签中右键单击,然后选择 "Filter Experiments"(过滤器实验)
使用 "Manage Filters"(管理过滤器)对话框可以进行常规过滤,以便选择显示来自特定实验、采样点、线程和 CPU 的数据。结合使用 "Experiments"(实验)标签和 "General"(常规)标签指定要显示数据的项。对于在 "Experiments"(实验)和 "General"(常规)标签中所做的选择,将使用逻辑 AND(&&&& 运算符)结合进行过滤。只有与在这些标签中做出的所有选择匹配的数据才会包括在数据标签中。
分析器帮助中提供了使用 "Manage Filters"(管理过滤器)对话框的说明。
该对话框还提供了可用于定制过滤器的 "Custom"(定制)标签。有关更多信息,请参见下文。
使用 "Custom"(定制)标签可以键入自己的过滤器表达式,或者编辑以前应用过的过滤器来创建定制过滤器。"Custom"(定制)标签中的过滤器独立于通过 "Manage Filters"(管理过滤器)对话框的 "Experiments"(实验)标签和 "General"(常规)标签应用的过滤器。
在性能分析器数据标签中选择上下文过滤器时,将生成过滤器表达式,并且会立即应用来过滤数据。生成的过滤器表达式也可添加到 "Custom"(定制)标签的文本框中,在其中可以使用这些表达式作为基础来创建定制过滤器。
可以编辑过滤器,使用 "Filter Specification"(过滤器规范)面板上方的箭头按钮来撤消和重做所进行的编辑。您也可以采用与文本编辑器中相同的方法,按 Ctrl-Z 进行撤消,按 Shift-Ctrl-Z 进行重做。
过滤器表达式使用标准的 C 关系运算符(==、>=、&&&&、|| 等等)以及实验特定的关键字。要查看在分析器中打开的实验中可用的关键字,请单击 "Custom"(定制)标签中的 "Show Keywords"(显示关键字)按钮。
过滤器表达式语法与 er_print 中使用的过滤语法相同。有关过滤器表达式的信息,请参见表达式语法。
在单击 "OK"(确定)或 "Apply"(应用)之前,编辑后的过滤器不会影响数据标签。如果单击 "Apply"(应用),则 "Custom"(定制)标签仍保持打开状态。如果在分析器数据标签中选择了上下文过滤器,则对于根据您的选定内容生成的过滤器表达式,当它们添加到 "Filter Specification"(过滤器规范)文本框中后,您可以查看这些过滤器表达式。每个新的过滤器放在一个新行中,以 &&&&(逻辑“与”运算符)开头。要显示实验数据,这些数据必须与第一个过滤器匹配、并且与第二个过滤器匹配、并且与第三个过滤器匹配,等等。如果希望数据匹配第一个过滤器或第二个过滤器,则可以将 &&&& 更改为 ||。
您还可以在 "Custom"(定制)标签中使用标签进行过滤,如下文中所述。
标签是分配给实验的一部分的名称。使用 er_label 命令,您可以将标签名分配给实验中的一段时间,而标签将保存在实验中。通过 er_print 命令或性能分析器,您可以使用标签来过滤实验数据,以便包含或排除在所标记时段内收集的数据。
有关如何使用 er_label 实用程序创建标签的信息,请参见标记实验。
在性能分析器中,可以在 "Manage Filters"(管理过滤器)对话框的 "Custom"(定制)标签中过滤所标记时段的数据。在 "Filter Specification"(过滤器规范)面板中键入标签名称,然后单击 "Apply"(应用)来过滤标签所指定的数据。由于标签用作通过 TSTAMP 关键字使用数值进行比较的过滤表达式的昵称,您无需进行任何数值比较。在 "Custom"(定制)标签中,将标签添加到单独的行中并且在前面放置 &&&&,可以将标签与其他过滤器结合使用。
在 "Custom"(定制)标签中单击 "Show Keywords"(显示关键字)按钮,可查看是否为在性能分析器中打开的实验分配了标签。您也可以使用 er_print -describe 命令查看相同的信息。标签在显示内容中将首先列出,并且包含实际过滤器表达式,该表达式带有由标签实施的 TSTAMP 关键字。
应用标签过滤器之后,可以单击 "Timeline"(时间线)标签以便查看按标签定义的间隔删除的数据。其他支持过滤的标签上也会对数据进行过滤。