Oracle Solaris Studio 12.2:性能分析器

内联函数

内联函数是这样的函数:在函数的调用点上(而不是实际调用上)为其插入由编译器生成的指令。有两种类型的内联,执行它们都可提高性能,并且它们都影响分析器。

这两种类型的内联对于度量的显示具有相同的效果。出现在源代码中但已被内联的函数不出现在函数列表中,也不显示为它们内联到的函数的被调用方。原本在内联函数的调用点上显示为非独占度量的度量(表示被调用函数中所用的时间)实际上将显示为归属到调用点的独占度量(表示内联函数的指令)。


注 –

内联可能会使数据难以解释,因此在编译程序以进行性能分析时,可能希望禁用内联。


在某些情况下,甚至在函数被内联时,会留下所谓的外部函数 (out-of-line function)。某些调用点调用外部函数 (out-of-line function),而其他调用点使指令内联。在这样的情况下,函数出现在函数列表中,但归属到该函数的度量仅表示外部调用 (out-of-line call)。