比较VTune Performance Analyzer的样本分析器(Sampling)和调用图分析器(Call Graph)
样本分析器通过周期性的事件中断中央处理器来获得样本,分析用户代码(模块,函数,源码)的热点。调用图不仅可以分析热点函数,还可以分析函数之间的调用关系。
但是在使用上还是有差异的:
1. 样本分析器自身的额外开销要比调用图小
2. 调用图只能分析用户态的程序,不能分析系统态的程序-如驱动程序。而样本分析器既可以分析用户态的程序,也可以分析系统态的程序。
3. 样本分析器可以分析系统平台上所有的活动进程,模块。而调用图只能分析目标应用程序。
4. 对于样本分析器而言,若要知道热点函数,目标程序必须包含符号调试信息。对于调用图而言,目标程序不仅必须包含符号调试信息,还必须是可重定位的, Linker 选项 - /Fixed:no
5. 调用图的结果是基于时间的,样本分析器的结果不仅基于时间,还可能是基于事件的。