vtune函数调用计数

时间:2014-11-26 09:28:16

标签: profiler vtune

vtune放大器2015用什么技术来估算 功能呼叫计数?

我知道它没有提供准确的信息。 我想,它用的 调用计数=单个函数运行的函数/时钟周期所用的总时钟周期

是这样吗? 或者有任何分析器提供呼叫计数信息而不会产生太多开销。

1 个答案:

答案 0 :(得分:1)

收集估计的呼叫计数基于BTS(分支跟踪存储)用法。这是英特尔®处理器中的硬件功能,可自动将信息存储到所有已采用分支的内存缓冲区中。函数调用被视为分支,并从此缓冲区中获取。

如果功能很热,则在统计上可见。因此,它会被硬件事件计数器溢出时发生的性能监视中断(PMI)中断。一旦中断,就启动分支集合,并且当包含分支记录的内存缓冲区溢出时,在收到分支跟踪中断(BTI)时,信息被保存在磁盘上(进入跟踪文件)。然后集合等待下一个样本并收集另一个“分支束”,依此类推。

收集完成后,将分析跟踪文件,并将呼叫计数与其他分支信息分开。考虑到跟踪文件中的呼叫计数,样本频率和程序VTune Amplifier XE中的分支总数估计统计呼叫计数。很少被称为函数只出现在少数样本中或根本不出现 - 估计这些数据的呼叫计数与现实相差太远,因此它们的呼叫计数显示为零。

此处提供了更多信息:https://software.intel.com/en-us/articles/calculating-estimated-call-counts-with-intel-vtune-amplifier-xe-2013

英特尔®VTune™放大器XE 2015还采用英特尔®处理器跟踪技术(https://intel.activeevents.com/sf14/connect/fileDownload/session/64115DDAD8D7174736E4D82C5FA3A42C/SF14_ARCS001_100f.pdf),可用于以类似方式估算呼叫计数。