Oracle Solaris Studio 12.2:性能分析器

-F option

控制是否应当记录子孙进程的数据。option 的允许值包括:

缺省情况下设置 -F on 选项,这样收集器将跟踪通过调用函数 fork(2)、fork1(2)、fork(3F)、vfork(2) 和 exec(2) 及其变体而创建的进程。对 vfork 的调用已在内部被替换为对 fork1 的调用。

对于 MPI 实验,缺省情况下还跟踪子孙进程。

如果指定 -F all 选项,收集器将跟踪所有子孙进程,其中包括那些通过调用 system(3C)、system(3F)、sh(3F)、posix_spawn(3p)、posix_spawnp(3p) 和 popen(3C) 以及类似函数而创建的子孙进程以及与其相关的子孙进程。

如果指定 -F '= regexp ' 选项,收集器将跟踪所有子孙进程。当子孙进程的名称或子实验的名称与指定的正则表达式匹配时,收集器将创建子实验。有关正则表达式的信息,请参见 regexp(5) 手册页。

当您在子孙进程上收集数据时,收集器会针对创始实验中的每个子孙进程打开一个新实验。这些新实验是通过向实验后缀添加一个下划线、一个字母和一个数字来命名的,如下所示:

例如,如果初始进程的实验名称是 test.1.er,则由它的第三个派生创建的子进程的实验是 test.1.er/_f3.er。如果该子进程针对新映像执行 exec 操作,则相应的实验名称为 test.1.er/_f3_x1.er。如果该子进程使用 popen 调用创建另一个进程,则实验名称为 test.1.er/_f3_x1_c1.er

读取创始实验时,分析器和 er_print 实用程序将自动读取子孙进程的实验,并在数据显示中显示子孙进程。

要从命令行中选择要显示的数据,请明确指定 er_printanalyzer 的路径名。所指定的路径必须包含创始实验的名称以及创始目录中后续实验的名称。

例如,要查看 test.1.er 实验的第三个派生的数据,需要指定以下内容:

er_print test.1.er/_f3.er

analyzer test.1.er/_f3.er

或者,可以使用感兴趣的后续实验的显式名称来准备实验组文件。

要在分析器中检查子孙进程,请装入创始实验并从“视图”菜单中选择“过滤数据”。此时将显示一个实验列表,其中只有创始实验处于选中状态。取消选中初始实验并选中感兴趣的后续实验。


注 –

如果正在跟踪子孙进程时创始进程退出,将继续从仍然在运行的子孙进程中收集数据。创始实验目录会相应地继续变大。


您还可以收集脚本上的数据并跟踪脚本的子孙进程。有关更多信息,请参见从脚本收集数据