我使用Very Sleepy CS进行分析,如果重要的话。
IPP(英特尔的集成性能基元)在我的项目中使用,基本上只用于一次通话:
ippsExp_64fc_A26(reinterpret_cast<Ipp64fc*>(delta_vector.data()), reinterpret_cast<Ipp64fc*>(delta_vector_out.data()), delta_vector.size());
在分析之后,我注意到一个奇怪的函数调用来自调用前面提到过的函数。 ippvmGetLibVersion 是它的名字,它几乎占执行时间的1/3。我的消息来源中没有提到它。在主程序的开头调用 ippInit 。
发生了什么,如何摆脱它?浪费具有相同回报的常量调用的执行时间似乎很愚蠢。
答案 0 :(得分:1)
你能查看谁调用了ippvmGetLibVersion吗? VS CS提供这种能力? 如果没有,您可以在ippvmGetLibVersion地址设置断点并显示调用堆栈。
P.S。我将检查此函数是否与ippsExp_64fc_A26有任何共同之处。
此致,谢尔盖。
答案 1 :(得分:0)
确实是一个错误。 Visual Studio的分析器没有显示上述功能的迹象。