【问题标题】:vtune function call countvtune 函数调用次数
【发布时间】:2014-11-26 09:28:16
【问题描述】:

vtune 放大器 2015 使用什么技术来估算 函数调用次数?

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

是这样吗? 或者有任何分析器可以提供调用计数信息而不会造成太多开销。

【问题讨论】:

    标签: profiler intel-vtune


    【解决方案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™ Amplifier XE 2015 还使用英特尔® 处理器跟踪技术 (https://intel.activeevents.com/sf14/connect/fileDownload/session/64115DDAD8D7174736E4D82C5FA3A42C/SF14_ARCS001_100f.pdf) 以类似方式估计调用计数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 2021-08-02
      • 2020-11-27
      相关资源
      最近更新 更多