【发布时间】:2014-07-28 08:18:41
【问题描述】:
在我的 C++ 程序中,我通过 clock() 命令测量 CPU 时间。由于代码在不同计算机的集群上执行(运行所有相同的操作系统,但具有不同的硬件配置,即不同的 CPU),我想知道测量实际执行时间。这是我的场景:
据我所知,clock() 给出了自固定日期以来经过的 CPU 时钟滴答数。我通过第二次调用 clock() 并建立差异来测量相对持续时间。
现在是什么定义了 C++ 中的内部时钟()?如果我有 1.0 GHz 的 CPU A 和 2.0 GHz 的 CPU B 并在它们上运行相同的代码,CPU A 和 B 需要多少时钟才能完成?时钟()是否对应于“完成的工作”?还是真的是“时间”?
编辑:由于未设置 CLOCKS_PER_SEC,我无法使用它在几秒钟内将时钟转换为运行时。正如手册所说, CLOCKS_PER_SEC 取决于硬件/架构。这意味着时钟依赖于硬件。所以,我真的需要知道 clock() 给了我什么,而不需要任何额外的计算。
【问题讨论】: