Oracle® Developer Studio 12.5:性能分析器

退出打印视图

更新时间: 2016 年 6 月
 
 

配置设置

可以使用 "Settings"(设置)对话框控制数据和其他配置设置的表示形式。要打开该对话框,请单击工具栏中的 "Setttings"(设置)按钮或选择 "Tools"(工具)-> "Setttings"(设置)。

"OK"(确定)按钮应用对当前会话所做的更改并关闭对话框。"Apply"(应用)按钮应用对当前会话的更改,但保持对话框的开启状态,以便进行其他更改。"Close"(关闭)按钮关闭对话框,不保存或应用任何更改。

"Export"(导出)按钮打开 "Export Settings"(导出设置)对话框,您可以使用该对话框选择要导出的设置以及保存它们的位置。当您在将来的性能分析器会话或当前会话中再次打开该实验时,可以将导出的配置设置应用于该实验。您还可以将配置用于其他实验。有关更多信息,请参见性能分析器配置文件

视图设置

视图设置面板列出当前实验适用的数据视图。

标准视图

单击复选框可选择或取消选择要显示在性能分析器中的标准数据视图。

索引对象视图

单击复选框可选择或取消选择要显示的索引对象视图。预定义的索引对象视图包括 "Threads"(线程)、"Cpus" (Cpu)、"Samples"(抽样)、"Seconds"(秒)、"Processes"(进程)。

要为定制索引对象添加视图,请单击 "Add Custom View"(添加定制视图)按钮以打开 "Add Index Object"(添加索引对象)对话框。您指定的索引对象名称必须尚未定义,并且不能与任何现有命令或任何内存对象类型相同。该名称不区分大小写,必须完全由字母数字字符或 '_' 字符组成,且以字母字符开头。公式必须遵循表达式语法中说明的语法。

也可以使用 er_print 命令创建索引对象。请参见控制索引对象列表的命令

内存对象视图

单击复选框可选择或取消选择要显示的预定义内存对象视图。当实验包含硬件计数器分析数据时,这些视图可用。

内存对象表示内存子系统中的组件,如高速缓存行、页面和内存区。为虚拟页面和物理页面预定义了内存对象,其大小为 8KB、64KB、512KB 和 4 MB。

要添加定制内存对象的视图,请单击 "Add Custom Memory Object View"(添加定制内存对象视图)按钮以打开 "Add Memory Object"(添加内存对象)对话框。您指定的内存对象名称必须尚未定义,并且不能与任何现有命令或任何索引对象类型相同。该名称不区分大小写,必须完全由字母数字字符或 '_' 字符组成,且以字母字符开头。公式必须遵循表达式语法中说明的语法。

计算机模型文件

可以针对特定的 SPARC 系统体系结构装入用于定义内存对象的文件。从 "Machine Model"(计算机模型)下拉菜单中选择感兴趣的系统体系结构。单击 "Apply"(应用)或 "OK"(确定),此时新的对象列表将显示在 "Memory Objects Views"(内存对象视图)列中。可以从这些视图中进行选择以显示关联的数据。在帮助中搜索“计算机模型”以了解更多信息。

缺省情况下,性能分析器将装入对记录实验所在的计算机适用的计算机模型文件。计算机模型文件可定义内存对象和索引对象。

度量设置

使用度量设置可以选择在大多数分析器标签(包括 "Function"(函数)、"Callers-Callees"(调用方-被调用方)、"Source"(源)、"Disassembly"(反汇编)等等)中显示的度量。一些度量可以根据您的选择以时间或百分比显示,而另一些则显示为值。度量列表包括装入的任意实验中可用的所有度量。

每种度量都提供了 "Time"(时间)和 "Percentage"(百分比)复选框,或者 "Value"(值)复选框。选中希望性能分析器显示的度量类型的复选框。单击 "Apply"(应用)可使用新度量更新视图。还可以在 "Overview"(概述)中选择度量,其显示将与此处建立的设置同步。您可以单击列标题对度量进行排序。


注 -  只能选择显示独占度量和非独占度量。如果显示了独占度量或非独占度量,则归属度量始终显示在 "Call Tree"(调用树)视图中。

时间线设置

使用时间线设置可以指定显示在"Timeline"(时间线)视图中的信息。

Data Types(数据类型)

选择要显示的数据的种类。选定项将应用至所有实验和所有显示类型。如果某个数据类型未包含在实验中,则该数据类型不会作为可选的数据类型显示在设置中。

CPU Utilization Samples(CPU 利用率抽样)

选择该项可为每个进程显示 CPU 利用率抽样栏。该抽样栏显示了一个图形,其中汇总了每个定期抽样的微观状态信息。

Clock Profiling(时钟分析)

选择该项可为每个 LWP、线程、CPU 或实验捕获的时钟分析数据显示时间线栏。每项的时间线栏显示在每个抽样事件处执行的函数的有色调用堆栈。

HW Counter Profiling (keyword)(HW 计数器分析(关键字))

选择该项可显示硬件计数器分析数据的时间线栏。

I/O Tracing(I/O 跟踪)

选择该项可显示 I/O 跟踪数据的时间线栏。

Heap Tracing(堆跟踪)

选择该项可显示堆跟踪数据的时间线栏。

Synchronization Tracing(同步跟踪)

选择该项可显示同步跟踪调用堆栈的时间线栏。

Event States(事件状态)

选择该项可将用于显示每个事件的微观状态的图添加到每个时间线栏。Event Density(事件密度)-选择该项可将用于显示事件何时发生的图添加到每个时间线栏。

Group Data By(数据分组方式)

指定如何为每个进程(按 LWP、线程、CPU)或总体进程划分时间线栏。还可以使用 "Timeline"(时间线)工具栏中的 "Group Data"(数据分组)列表设置分组。

堆栈对齐

指定显示在时间线事件标记中的调用堆栈是在叶函数还是根函数处对齐。如果希望最后一个调用的函数显示在堆栈的底部,则选择叶。该设置不影响显示在 "Selection Details"(选择详细信息)面板中的数据,该面板始终将叶函数显示在顶部。

调用堆栈放大(Call Stack Magnification)

指定在调用堆栈中显示每个函数时应当使用多少像素。缺省值为三。此设置(以及控制每行可用空间的时间线垂直缩放)决定了是将截断还是完全显示较深的调用堆栈。

源/反汇编设置

使用源/反汇编设置可以选择显示在 "Source"(源)视图、"Disassembly"(反汇编)视图和 "Source/Disassembly"(源/反汇编)视图中的信息。

Compiler Commentary(编译器注释)

选择显示在 "Source"(源)视图和 "Disassembly"(反汇编)视图中的编译器注释的类。

突出显示阈值的热点行

在 "Source"(源)视图和 "Disassembly"(反汇编)视图中突出显示高度量行的阈值。阈值是归属于显示源代码或反汇编代码的文件中任意行的最大度量值百分比。阈值独立应用到各个度量。

Source Code(源代码)

在 "Disassembly"(反汇编)视图中显示源代码。如果在 "Disassembly"(反汇编)视图中显示源代码,则还将显示启用的类的编译器注释。

Metrics for Source Lines(源代码行的度量)

在 "Disassembly"(反汇编)视图中显示源代码的度量。

Hexadecimal Instructions(十六进制指令)

在 "Disassembly"(反汇编)视图中以十六进制格式显示指令。

Only Show Data of Current Function(仅显示当前函数的数据)

仅对在其他视图中选定的当前函数的指令显示度量。如果选择此选项,则对所有其他指令隐藏度量。

显示编译器命令行标志

显示用于编译目标程序的编译器命令和选项。滚动到 "Source"(源)视图的最后一行以查看命令行。

显示函数开始行

打开或关闭函数开始行。

调用树设置

调用树设置 "Expand branches when percent of metric exceeds this threshold"(当度量百分比超出此阈值时展开分支)可设置在 "Call Tree"(调用树)视图中展开分支的触发器。如果调用树的某个分支使用度量的百分比达到或低于指定值,则在选择诸如 "Expand Branch"(展开分支)或 "Expand All Branches"(展开所有分支)之类的展开操作时,它不会自动展开。如果它超出该百分比,则会展开。

格式设置

使用格式设置可指定其他数据视图格式。

Function Name Style(函数名样式)

指定是以长格式、短格式还是 C++ 函数名称和 Java 方法名称的改编格式显示函数名称。

Append SO name to Function name(将 SO 名称附加到函数名)

选中该复选框可以将函数或方法所在的共享对象的名称附加到该函数或方法名称。

View Mode(查看模式)

设置查看模式工具栏的初始设置,仅对 Java 实验和 OpenMP 实验启用该设置。查看模式 "User"(用户)、"Expert"(专家)和 "Machine"(计算机)设置用于查看实验的缺省模式。使用工具栏中的查看模式列表可以切换当前视图。

    对于 Java 实验:

  • "User"(用户)模式显示解释的方法和调用的任何本机方法的度量。特殊函数 <no Java call stack recorded > 指示 Java 虚拟机 (Java Virtual Machine, JVM) 软件不报告 Java 调用堆栈,即使 Java 程序当时正在运行也是如此。

  • "Expert"(专家)模式显示解释的方法和调用的任何本机方法的度量,并列出由 JVM 动态编译的方法。

  • "Machine"(计算机)模式将多个 JVM 编译显示为完全独立的函数,但这些函数将具有相同的名称。在该模式中,JVM 软件中的所有函数都按照此方式显示。

有关 Java 实验查看模式的详细说明,请参见Java 分析查看模式

    对于 OpenMP 实验:

  • "User"(用户)模式显示重构的调用堆栈,这些重构的调用堆栈类似于在不使用 OpenMP 的情况下编译程序时获取的调用堆栈。在 OpenMP 运行时执行某些操作时,显示名称格式为 <OMP-*> 的特殊函数。

  • "Expert"(专家)模式显示编译器生成的且代表并行化循环、任务等的函数,这些函数会与 "User"(用户)模式中的用户函数聚集。在 OpenMP 运行时执行某些操作时,显示名称格式为 <OMP-*> 的特殊函数。

  • "Machine"(计算机)模式显示所有不具有任何特殊 <OMP-*> 函数的线程的计算机调用堆栈。

有关 OpenMP 实验查看模式的详细说明,请参见OpenMP 软件执行概述

对于所有其他实验,所有三种模式显示同样的数据。

Comparison Style(比较样式)

指定在比较实验时要如何显示数据。例如,比较实验度量可能显示为 x0.994 以指示其相对于基本实验的值。

绝对值

显示所有装入的实验的度量值。

差值

显示基线实验和其他装入的实验度量之间的 +/- 差异。

比率

将基线实验和其他装入的实验度量之间的差异显示为比率。

搜索路径设置

搜索路径设置指定查找所装入实验的关联源代码文件和对象文件的路径,以便在 "Source"(源)和 "Disassembly"(反汇编)视图中显示带注释的源代码数据。搜索路径还可用于在系统上查找 Java 运行时环境的 .jar 文件。特殊目录名称 $expts 按照装入实验的顺序引用当前实验集。搜索 $expts 时,只查找创建者实验,不检查任何子孙实验。

缺省情况下,搜索路径设置为 $expts.(当前目录)。可以通过键入路径或浏览路径,然后单击 "Append"(附加)来添加其他路径。要编辑列表中的路径,请选择一个路径,在 "Paths"(路径)字段中进行编辑,然后单击 "Update"(更新)。要更改搜索顺序,请在列表中选择路径,然后单击 "Move Up/Move Down"(上移/下移)按钮。

有关搜索路径使用方法的更多信息,请参见工具如何查找源代码

路径映射设置

使用路径映射设置,可以将文件路径的开头部分从一个位置映射到另一个位置,以帮助性能分析器定位源文件。对于已经从记录的原始位置移动的实验,路径映射很有用。在找到源文件时,性能分析器会在 "Source"(源)和 "Disassembly"(反汇编)视图中显示带注释的源数据。

源路径

键入实验中使用的源的路径开头部分。可以通过在性能分析器中打开实验时查看 "Selection Details"(选择详细信息)面板找到该路径。

目标路径

键入或浏览至从运行性能分析器的当前位置到源的路径的开头部分。

例如,如果实验包含指定为 /a/b/c/d/sourcefile 的路径,而 soucefile 现在位于 /x,则可以使用 "Pathmaps"(路径映射)设置将 /a/b/c/d/ 映射到 /x/。可以指定多个路径映射,这样将依次尝试每个路径映射以查找文件。

有关路径映射使用方法的更多信息,请参见工具如何查找源代码

性能分析器配置文件

退出工具时,性能分析器会自动保存您的配置设置。再次打开同一实验时,其配置与以前关闭实验时一样。

您可以将某些设置保存在名称以 config.xml 结尾的配置文件中,当您从 "Open Experiment"(打开实验)对话框打开任何实验时,可将该配置文件应用于实验。可以将配置保存在仅供您使用的位置,也可以保存到供其他用户使用的共享位置。

打开实验时,性能分析器将搜索缺省位置以查找可用的配置文件,并允许您选择适用于所打开的实验的配置。

也可以使用 "Tools"(工具)> "Export Settings as er.rc"(将设置导出为 er.rc)将设置导出到 .er.rc 文件,该文件可由 er_print 命令读取。这样就可在 er_print 和性能分析器中启用相同的度量。