1

测量经过时间的常用方法是:

const clock_t START = clock();
// ...
const clock_t END = clock();
double T_ELAPSED = (double)(END - START) / CLOCKS_PER_SEC;

我知道这不是测量实时的最佳方法,但我想知道它是否适用于具有可变频率 CPU 的系统。只是错了吗?

4

2 回答 2

1

在可变时钟速度 CPU 上使用并不好。

http://support.ntp.org/bin/view/Support/KnownHardwareIssues

Linux 上的 NTP(网络时间协议)守护进程存在问题。

大多数操作系统都有一些 API 调用以获得更准确的值,例如在 windows 上,QueryPerformanceCounter

http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx

于 2010-11-24T16:53:13.277 回答
1

有一些系统架构可以改变 CPU 的频率,但有一个单独的恒定频率来驱动系统时钟。有人会认为一个clock()函数会返回一个与 CPU 频率无关的时间,但这必须在每个要运行代码的系统上进行验证。

于 2010-11-24T17:00:38.247 回答