c++ - 确定核心 i5/7 架构上的程序运行时间

标签 c++ windows performance x86

在准确确定算法在我的程序中的运行速度时,我总是将 QueryPerformanceCounter() 与 QueryPerformanceFrequency() 结合使用,但是当我使用核心 i5/7 架构时会发生什么情况?

涡轮增压是否有可能在我的算法进行到一半时突然启动,突然我的性能计时器不再准确,因为我的时钟频率不再是一个常数,或者这真的不是问题吗?如果这是一个问题,那么准确计时算法的更好方法是什么?

最佳答案

简单来说,是的,任何事情都有可能发生。现代 CPU 的简单特性使得估计真实世界的性能变得非常困难。这不仅限于最新的 Intel x86-64 cpu,它同样适用于 8 位 PIC 微 Controller ,以及介于两者之间的所有东西。

对此唯一合理的做法是进行更多测试。您将需要执行多次重复测试才能准确了解真实硬件在真实工作负载上的真实运行时性能。

另一方面,如果一个算法在相同硬件(“在我的机器上”)上优于另一个算法,那么它通常会在其他设置上给出类似的比较结果,尽管它可能会因常数因素而变化。

关于c++ - 确定核心 i5/7 架构上的程序运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290611/

相关文章:

c++ - signed char 的整数转换

C++ 引用计数 : use a Macro to do it, 有什么优点?

windows - 如何检测 Electron/ Chrome 应用程序中的 Windows 软键盘?

performance - ARM7 Cortex A8上的浮点状态传输

java - 与 Linux VmRSS 的差异以及 Java NativeMemoryTracking (NMT) 的总提交内存

c++ - 在 C++ 中,使用 #define 还是 const 来避免魔数(Magic Number)更好?

c++ - 通用引用和转发引用之间有区别吗?

python - 使用 Python 根据特殊字符将列表切片为嵌套列表

windows - 如何让 Windows 控制台\命令提示符显示颜色?

html - 显示图像 :none still make an HTTP request?