启用 -xhwcprof 后,编译器将生成信息,该信息可帮助工具将已进行分析的装入指令和存储指令与它们所引用的数据类型和结构成员(结合使用 -g 生成的符号信息)相关联。它将分析数据同目标文件的数据空间(而不是指令空间)相关联,并对行为进行洞察,而这仅从指令分析中是无法轻易获得的。
当可以使用 -xhwcprof 编译指定的对象文件集时,如果对应用程序中的所有对象文件应用该选项,则该选项最为有用。它能全面识别并关联分布在应用程序对象文件中的所有内存引用。
如果在不同的步骤中进行编译和链接,最好在链接时使用 -xhwcprof。
-xhwcprof=enable 或 -xhwcprof=disable 的实例将会覆盖同一命令行中 -xhwcprof 的所有以前的实例。
在缺省情况下,禁用 -xhwcprof。指定不带任何参数的 -xhwcprof 与 -xhwcprof=enable 等效。
-xhwcprof 要求启用优化,并将调试数据格式设置为 dwarf (-xdebugformat=dwarf),这是当前 Oracle Solaris Studio 编译器的缺省设置。不允许在同一命令行上出现 -xhwcprof 和 -xdebugformat=stabs。
-xhwcprof 使用 -xdebuginfo 自动启用所需的最少量调试信息,所以不需要 -g。
-xhwcprof 和 -g 的组合会增加编译器临时文件的存储需求,而且比单独指定 -xhwcprof 和 -g 所引起的增加总量还多。
-xhwcprof 作为宏实施,扩展到多个其他更原始的选项,如下所示:
-xhwcprof -xdebuginfo=hwcprof,tagtype,line -xhwcprof=enable -xdebuginfo=hwcprof,tagtype,line -xhwcprof=disable -xdebuginfo=no%hwcprof,no%tagtype,no%line
下列命令可编译 example.f,并可为硬件计数器分析以及针对使用 DWARF 符号的数据类型和结构成员的符号分析指定支持:
f95 -c -O -xhwcprof -g example.f
有关基于硬件计数器的分析的更多信息,请参见 Oracle Solaris Studio 性能分析器手册。