0

我已经用 ANSI C 编写了一个简单的代码,现在想要执行一些测量。

我测量了执行时间(clock()在 Windows 操作系统和 Linux 操作系统下使用函数clock_gettime())。

现在我想计算一下,在运行我的这段代码时,我的 CPU 执行了多少 IPS(每秒指令)。(是的,我知道 MIPS 是一个可怜的参数,但即使这样,我也想计算一下)

也很高兴看到执行例如添加 3 个元素和我执行的其他操作需要多少 CPI(每条指令周期)。谷歌说如何使用计算器计算 MIPS 的数量,关于我的 CPU 的一些知识(它的时钟速度),简单的数学和一堆其他参数(如 CPI),但没有说如何获得这些!

我还没有找到任何 C/C++ 函数可以返回执行例如访问局部变量所需的时钟周期数。查找 Intel/AMD 的现代 CPU 参考手册也是一个问题,其中包含有关操作码和其他信息的信息。

我手动计算过,我的 ANSI C 代码需要 37 次操作,但这些是 ANSI C 操作,而不是 CPU 指令。

4

1 回答 1

0

在 Windows 上获得高精度计时的最简单方法是 PerformanceCounter,请参阅 如何使用 QueryPerformanceCounter?
然后你只需要一些函数来执行你对计时感兴趣的操作。您必须小心缓存等,因此多次运行计算并查看时间分布

于 2012-04-10T17:38:36.080 回答