【发布时间】:2012-04-10 14:49:01
【问题描述】:
我已经用 ANSI C 编写了一个简单的代码,现在想要执行一些测量。
我测量了执行时间(在 Windows 操作系统下使用clock() 函数,在 Linux 操作系统下使用clock_gettime())。
现在我想计算一下,在运行我的这段代码时,我的 CPU 执行了多少 IPS(每秒指令)。 (是的,我知道MIPS是个可怜的参数,但即使这样,我也想计算一下)
也很高兴看到执行例如多少个 CPI(每条指令周期)。添加 3 个元素和我执行的其他操作。 谷歌说如何使用计算器计算 MIPS 的数量,关于我的 CPU(它的时钟速度)的一些知识,简单的数学和一堆其他参数(如 CPI),但没有说明如何获得这些!
我还没有找到任何可以返回执行所需时钟周期数的 C/C++ 函数,例如访问局部变量。 查找 Intel/AMD 的现代 CPU 参考手册也是一个问题,其中包含有关操作码和其他信息的信息。
我已经手动计算,我的 ANSI C 代码需要 37 次操作,但这些是 ANSI C 操作,而不是 CPU 指令。
【问题讨论】:
-
你看过右边的“相关”列表吗?
-
@phresnel - 其中很多是针对 MIPS 处理器的,因为 OP 提到了我认为他们没有使用的 Windows。 Gzegorz - 你可能想删除 MIPS 标签
-
这些东西没有在任何地方列出的原因是因为它们是可变的。 “访问局部变量所需的时钟周期数”介于 0.3 纳秒和 15 秒之间,并且在没有警告的情况下更改。