Oracle Solaris Studio 12.2:性能分析器

外联函数

可以在反馈优化编译期间创建外联函数。它们表示正常情况下不执行的代码,特别是在用于生成最终优化编译反馈的训练运行期间不执行的代码。一个典型的示例是,对来自库函数的返回值执行错误检查的代码;正常情况下从不运行错误处理代码。为改进分页和指令高速缓存行为,将这样的代码移动到地址空间的其他位置,并使其成为单独的函数。外联函数的名称对有关外联代码段的信息进行编码,包括从其提取代码的函数的名称和源代码中该段开头的行号。这些重整名称 (mangled name) 可能随发行版的不同而不同。分析器提供了函数名称的可读版本。

外联函数不会被真正调用,而是跳转到它们;同样,它们不返回,而是跳回。为了使该行为与用户的源代码模型更紧密地匹配,分析器将来自主函数的人工调用转嫁于其外联部分。

外联函数显示为常规函数,具有相应的非独占度量和独占度量。此外,外联函数的度量作为代码从中进行外联的函数的非独占度量添加。

有关反馈优化编译的更多详细信息,请参阅《C 用户指南》的附录 B、《C++ 用户指南》的附录 A 或《Fortran 用户指南》的第 3 章中对 -xprofile 编译器的选项的说明。