我发现一些代码非常慢(将10秒的应用程序转换为60秒的应用程序)。我发现慢速代码使用“随机暂停应用程序,看看它在哪里”技巧。慢速代码位于第三方许可函数调用中,该调用正在检查许可证服务器是否有效许可证。
当我尝试使用英特尔的VTune放大器进行分析时,这个慢速函数调用并不会显示为花费很多时间。我不确定为什么,但我猜想函数调用必须在等待许可证服务器响应或类似的东西时睡觉,这会诱使VTune不将其识别为瓶颈。有没有办法让VTune识别这样的呼叫?
答案 0 :(得分:1)
我能够通过使用 Locks and Waits 分析模式而不是 Basic Hotspots 分析模式来显示它。使用 Locks and Waits ,我可以看到select
函数是我的顶级阻塞调用之一,我可以将该调用追溯到我的应用程序代码中,以查看它是如何被调用的。