Oracle Solaris Studio 12.2:性能分析器

控制输出的命令

以下命令控制 er_print 显示输出。

outfile { filename | - }

关闭任何打开的输出文件,然后为后续输出打开 filename。打开 filename 时,将清除任何先前存在的内容。如果指定一个短划线 (-) 而不是 filename,则将输出写入标准输出。如果指定两个短划线 (--) 而不是 filename,则将输出写入标准错误。

appendfile filename

关闭任何打开的输出文件并打开 filename,保留任何先前存在的内容,以便将后续输出附加到文件的结尾。如果 filename 不存在,则 appendfile 命令的功能与 outfile 命令的功能相同。

limit n

将输出限制为报告中的前 n 个条目;n 是一个无符号正整数。

name { long | short } [ :{ shared_object_name | no_shared_object_name } ]

指定是使用长形式还是短形式的函数名称(仅限 C++ 和 Java)。如果指定了 shared_object_name,则将共享对象名称附加到函数名称。

viewmode { user| expert | machine }

将模式设置为以下模式之一:

user(用户)

对于 Java 实验,显示 Java 线程的 Java 调用栈,而不显示内务处理线程。函数列表包括函数 <JVM-System>,该函数表示来自非 Java 线程的聚集时间。当 JVM 软件不报告 Java 调用栈时,将根据函数 <no Java callstack recorded> 报告时间。

对于 OpenMP 实验,显示重构的调用栈,这些重构的调用栈类似于在不使用 OpenMP 的情况下编译程序时获取的调用栈。在 OpenMP 运行时执行某些操作时,添加名称格式为 <OMP-*> 的特殊函数。

expert(专家)

对于 Java 实验,在执行用户的 Java 代码时,将显示 Java 线程的 Java 调用栈,而在执行 JVM 代码或当 JVM 软件不报告 Java 调用栈时,则显示计算机调用栈。显示内务处理线程的计算机调用栈。

对于 OpenMP 实验,显示编译器生成的、代表并行化循环、任务等的函数,这些函数会与用户模式中的用户函数聚集。在 OpenMP 运行时执行某些操作时,添加名称格式为 <OMP-*> 的特殊函数。

machine(计算机)

对于 Java 实验和 OpenMP 实验,显示所有线程的计算机调用栈。

对于除 Java 实验和 OpenMP 实验之外的所有实验,所有三种模式都显示相同的数据。

compare { on | off }

将比较模式设置为打开或关闭。缺省值是关闭,因此在读取同一个可执行文件上的多个实验时,会聚集数据。如果通过在 .er.rc 文件中设置 compare on 启用比较模式,且在同一个可执行文件上装入了多个实验,就会针对来自每个实验的数据分别显示度量列。此外,还可以使用 er_print compare 命令比较实验。

在比较模式下,在“函数”列表、“调用方-被调用方”列表以及“源和反汇编”列表上的相邻列中显示来自实验或组的数据。这些列按装入实验或组的顺序显示,同时带有一个给出实验或组名称的附加标题行。