我们可能经常会遇到程序中热点函数被多个调用者调用的情况,这样就需要知道哪个函数调用foo的次数最多,应用程序的库函数出现在热点处。要理解为什么特定函数会呈现为热点,我们需要知道程序的控制流图中的哪条路径是最热的。
Intel VTune profiler对基准测试x264的源代码和汇编代码分析视图。
分析foo的所有调用者的逻辑可能非常耗时,我们希望只关注那些导致foo为热点的调用者,我们想知道程序的CFG中最热的路径。剖析工具通过在收集性能样本时捕获进程的调用栈以及其他信息来实现这一点。然后,将所有收集的栈进行分分组,从而使我们能够看到导致某个特定函数的最热路径。
用linux perf工具收集调用栈有三种可能的方法。