VTune 中未显示某些函数调用
Posted
技术标签:
【中文标题】VTune 中未显示某些函数调用【英文标题】:Certain function calls not showing up in VTune 【发布时间】:2015-02-19 00:13:39 【问题描述】:我发现一些代码非常慢(将 10 秒的应用程序变成 60 秒的应用程序)。我发现使用“随机暂停应用程序并查看它在哪里”技巧的慢代码。慢代码位于第 3 方许可函数调用中,该函数调用正在检查许可服务器以获取有效许可。
当我尝试使用 Intel 的 VTune 放大器进行分析时,这个缓慢的函数调用并没有显示为花费太多时间。我不知道为什么,但我猜函数调用在等待许可证服务器响应或类似的东西时必须休眠,这会欺骗 VTune 不将其识别为瓶颈。有没有办法让 VTune 识别这样的调用?
【问题讨论】:
【参考方案1】:我能够通过使用 Locks and Waits 分析模式而不是 Basic Hotspots 分析模式来显示它。使用 Locks and Waits,我可以看到 select
function 是我的主要阻塞调用之一,我可以将该调用追溯到我的应用程序代码以查看它是如何被调用的。 p>
【讨论】:
以上是关于VTune 中未显示某些函数调用的主要内容,如果未能解决你的问题,请参考以下文章
在 intel-vtune 中,被调用函数的有效总时间高于调用函数的总时间
性能测量 - 获取每个函数的平均调用时间。英特尔 Vtune 放大器