Oracle® Developer Studio 12.5:性能分析器

退出打印视图

更新时间: 2016 年 6 月
 
 

数据的存储位置

在应用程序的一次执行过程中所收集的数据称作实验。实验由存储在目录下的一组文件组成。 实验的名称即目录的名称。

除记录实验数据以外,收集器还为程序所使用的装入对象创建自己的归档文件。这些归档文件包含装入对象中每个对象文件和函数的地址、大小和名称以及装入对象的地址和上次修改的时间戳。归档还可能包含所有共享对象及某些或所有源文件的副本。有关更多信息,请参见er_archive 实用程序

缺省情况下,实验存储在当前目录中。 如果该目录位于网络文件系统上,则存储数据所需的时间比在本地文件系统中长,而且可能会导致性能数据失真。如有可能,应始终尝试在本地文件系统中记录实验。可以在运行收集器时指定存储位置。

子孙进程的实验存储在创建者进程的实验内部。

实验名称

新实验的缺省名称为 test.1.er 后缀 .er 是必需的:如果您提供的名称不具有该后缀,则系统会显示一条错误消息而且不接受该名称。

如果您选择使用格式为 experiment.n.er 的名称,(其中 n 是正整数),则收集器会将后续实验名称中的 n 自动递增 1。 例如,mytest.1.er 的后面是 mytest.2.ermytest.3.er 等。如果实验已经存在,收集器也会递增 n,直到找到未使用的实验名称才停止递增 n。如果实验名称不含 n 且实验存在,则收集器会输出一条错误消息。

子实验遵循相同的命名规则。有关更多信息,请参见子实验

实验组

实验可按组收集。组在实验组文件中定义,缺省情况下该文件存储在当前目录中。 实验组文件是纯文本文件,它具有特殊的标题行,并在随后的每一行中显示实验名称。实验组文件的缺省名称为 test.erg。如果该名称不以 .erg 结尾,则将显示错误而且不接受该名称。创建实验组后,使用该组名称运行的所有实验都会添加到该组。

要手动创建实验组文件,请创建首行为以下内容的纯文本文件:

#analyzer experiment group

然后将实验名称添加到随后的行中。文件的扩展名必须为 .erg

还可以通过使用带有 –g 参数的 collect 命令来创建实验组。

子孙进程的实验

子孙进程的实验是按世系命名的,如下所示。 在形成子孙进程的实验名称时,将下划线、代码字母和数字添加到其创建者实验名称的主干中。代码字母 f 表示派生,x 表示执行,c 表示组合。数字是派生或执行的索引(无论是否成功)。例如,如果创建者进程的实验名称为 test.1.er,则在第三次调用 fork 时为子进程创建的实验为 test.1.er/_f3.er。如果子进程成功调用 exec,则新子孙进程的实验名称为 test.1.er/_f3_x1.er

MPI 程序的实验

缺省情况下,MPI 程序的数据收集到 test.1.er 中,而 MPI 进程的所有数据都收集到子实验中,每个等级一个子实验。收集器使用 MPI 等级以格式 M_rm.er 构造子实验名称,其中 m 是 MPI 等级。例如,MPI 等级 1 的子实验数据将记录在 test.1.er/M_r1.er 目录中。

内核和用户进程上的实验

缺省情况下,内核上的实验命名为 ktest.1.er 而不是 test.1.er。当同时收集用户进程的数据时,内核实验将包含每个跟随的用户进程所对应的子实验。

子实验使用 _process-name_PID_process-id.1.er 格式命名。例如,在进程 ID 1264 下运行的 sshd 进程上所运行的实验将命名为 ktest.1.er/_sshd_PID_1264.1.er

移动实验

如果要将实验移到其他计算机以便对其进行分析,则应了解分析与在其中记录实验的操作环境的相关性。

实验包含计算函数级度量和显示时间线所必需的全部信息。但是,如果要查看带注释的源代码或带注释的反汇编代码,则必须能够访问与用于生成目标或实验的装入对象或源文件相同的版本。

有关用于查找实验源代码的过程的说明,请参见工具如何查找源代码

要确保看到程序正确的带注释的源代码和带注释的反汇编代码,可以在移动或复制实验之前使用 er_archive 命令将源代码、对象文件和可执行文件复制到实验中。

有关更多信息,请参见 er_archive(1) 手册页。