在准确确定算法在我的程序中的运行速度时,我总是将 QueryPerformanceCounter() 与 QueryPerformanceFrequency() 结合使用,但是当我使用核心 i5/7 架构时会发生什么情况?
涡轮增压是否有可能在我的算法进行到一半时突然启动,突然我的性能计时器不再准确,因为我的时钟频率不再是一个常数,或者这真的不是问题吗?如果这是一个问题,那么准确计时算法的更好方法是什么?
最佳答案
简单来说,是的,任何事情都有可能发生。现代 CPU 的简单特性使得估计真实世界的性能变得非常困难。这不仅限于最新的 Intel x86-64 cpu,它同样适用于 8 位 PIC 微 Controller ,以及介于两者之间的所有东西。
对此唯一合理的做法是进行更多测试。您将需要执行多次重复测试才能准确了解真实硬件在真实工作负载上的真实运行时性能。
另一方面,如果一个算法在相同硬件(“在我的机器上”)上优于另一个算法,那么它通常会在其他设置上给出类似的比较结果,尽管它可能会因常数因素而变化。
关于c++ - 确定核心 i5/7 架构上的程序运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290611/