Oracle Solaris Studio 12.2 发行版的新增功能

第 4 章 性能分析工具

本章介绍了此 Oracle Solaris Studio 发行版的性能分析工具中新增和更改的功能。

性能分析器

本节介绍了此 Solaris Studio 性能分析器发行版以及相关工具中新增和更改的功能。有关详细信息,请参见《Oracle Solaris Studio 12.2:性能分析器》手册。

对实验格式的更改

扩展了实验格式,但是版本号当前没有更改 (10.1)。

这些工具可以读取使用 Oracle Solaris Studio 12.2 的 FCS 版本创建的实验,也可以读取使用 Studio 12 Update 1 和 Studio 12 的 FCS 和修补版本创建的实验。

无法使用 Oracle Solaris Studio 12.2 工具读取早于 Sun Studio 12 的版本创建的实验。

对性能分析器工具的更改

性能分析工具包含下列增强功能。

新增“调用树”选项卡

新增的“调用树”标签以树的形式显示程序的动态调用图,每个函数调用均显示为可以展开和折叠的节点。展开的函数节点显示由该函数生成的所有函数调用,以及这些函数调用的性能度量。当您选中某个节点时,右侧的“摘要”选项卡将显示该函数调用方和被调用方的度量。归属度量的百分比是总程序度量的百分比。

要轻松查找花费时间最多的分支,请右键单击任一节点,然后选择“展开热门分支”。

“调用方-被调用方”选项卡的增强功能

通过将调用方和被调用方添加到调用栈,您可以在中间的“堆栈片段”面板中构建调用栈片段,一次可构建一个调用。调用方是调用该片段的函数;被调用方是从该片段调用的函数。功能包括:

新增比较试验功能

现在,通过性能分析器,您可以比较在同一可执行文件上收集的实验。此功能仅部分实现,可能会在后续发行版中有所更改。在当前发行版中,比较试验功能按如下所示运行:

其他增强功能

er_print 命令

er_print 命令在此发行版中进行了如下更改:

新增数据收集功能

collect 命令在此发行版中进行了如下更改:

新增 dbx 收集器功能

对 dbx 调试器的 collector 子命令进行了如下更改:

er_kernel 的更改

更改了用于分析 Solaris 内核的命令,使 er_kernel 在将信号 SIGINTSIGTERMSIGQUIT 发送到进程时可执行以下操作:

新增命令 er_generic

er_generic 命令用于从包含配置文件信息的文本文件生成实验。然后,可使用性能分析器或 er_print 命令检验模拟的实验。有关更多信息,请参见 er_generic(1) 手册页。

en_desc 的更改

缺省情况下,en_desc 命令现在可读取所有后代进程。

线程分析器

现在,线程分析器支持对在源级别或二进制级别校验的代码进行数据争用检测。源级别校验在此发行版中没有更改。

要校验程序的二进制代码,您需要使用 discover 工具,该工具包括在 Oracle Solaris Studio 中,在 discover(1) 手册页中进行了介绍。另请参见《Oracle Solaris Studio 12.2 Discover 和 Uncover 用户指南》

要校验程序的二进制代码以检测数据争用现象,discover 工具需要在下列条件下编译输入的二进制文件:

如果二进制文件是使用编译器选项 -xbinopt=prepare 编译的,您可能还能够在基于 SPARC 的系统上运行的早期 Solaris 版本上使用 discover 工具。有关此编译器选项的信息,请参见 cc(1)、CC(1) 或 f95(1) 手册页。

如果二进制文件名为 a.out,您可以使用以下命令创建名为 a.out_i 的校验二进制文件:


% discover -i datarace -o a.out_i a.out

有关详细信息,请参见《Oracle Solaris Studio 12.2:线程分析器用户指南》tha(1) 手册页。