我有两块代码执行相同的操作。一个是我自己写的,一个是第三方写的。它们都被编译成一个可执行文件。第三方代码似乎能够比我的更快地完成它的工作。与我的 500 次相比,它每秒可以执行 1,500 次操作。然后我在 VTune 中运行可执行文件,使用调用图分析选项,希望这能揭示我在哪里浪费时间。不幸的是,VTune 诊断程序显示了它认为每个函数需要的微秒数,声称我的函数和第三方函数每次调用都需要大约 0.002 秒。这对于我的代码来说似乎是正确的,但与我对第三方代码速度的(手动)测量完全不一致。
这怎么可能发生?
编辑:这两个代码块都很大,并调用它们自己的复杂子函数树。
编辑:我应该指出第三方代码是纯 C++ 而我的代码本质上是刚刚在 C++ 编译器中编译的 C 代码。
编辑:VTune 是一个非常复杂的包,其中包含我不理解的大量配置选项。是否有一些设置可以减少这种不准确性?