Oracle® Solaris Studio 12.4:性能分析器

退出打印视图

更新时间: 2015 年 1 月
 
 

针对源代码分析进行编译

要在带注释的 "Source"(源)和 "Disassembly"(反汇编)视图中查看源代码以及在 "Lines"(行)视图中查看源代码行,就必须使用 -g 编译器选项(对于 C++ 来说为用于启用前端内联的 -g0)编译感兴趣的源文件,以生成调试符号信息。 调试符号信息的格式可以是 DWARF2 或 stabs,由 -xdebugformat=(dwarf|stabs) 指定。 缺省的调试格式是 dwarf

用 DWARF 格式的调试符号生成的可执行文件和库会自动包括每个要素对象文件调试符号的副本。如果用 stabs 格式的调试符号生成的可执行文件和库是通过 –xs 选项(该选项将 stabs 符号保留在各个对象文件及可执行文件中)进行链接的,那么所生成的可执行文件和库中也会包括每个要素对象文件调试符号的副本。当您需要移动或删除对象文件时,包括这些信息尤为重要。使用可执行文件和库本身中的所有调试符号,可以更容易地将实验和与程序相关的文件移至新位置。

可以通过 Oracle Solaris Studio 编译器或 GNU 编译器来编译程序。但是,GNU 编译器无法支持某些功能,如使用 OpenMP 重构的调用堆栈。

在 Studio 编译器中,使用 -g 编译不会更改优化,O2O3 优化级别的尾部调用优化除外。

支持 Java 代码的源代码级信息。与本机语言不同,在实验中不会记录 Java 源代码的位置。您可能需要使用路径映射或者设置搜索路径来指向源代码。有关更多信息,请参见工具如何查找源代码

针对数据空间和内存空间分析进行编译

数据空间分析将内存访问归属到数据结构元素。要启用数据空间分析,必须使用 Oracle Solaris Studio 编译器和 -xhwcprof 选项编译 C、C++ 和 Fortran 可执行文件。如果不使用该选项进行编译,则 "DataObjects"(数据对象)和 "DataLayout"(数据布局)视图不会显示二进制文件的数据。

内存空间分析允许您查看哪些内存地址消耗的性能最多。在针对内存空间分析准备程序时不需要使用特殊编译器选项,但只能在运行 Oracle Solaris 10 1/13 的 SPARC 平台以及运行 Oracle Solaris 11.2 的 Intel 平台上使用此功能。有关更多信息,请参见数据空间分析和内存空间分析