1

我正在尝试查看 1 纳秒在我的笔记本电脑上需要多少个周期。

笔记本电脑配置:

  1. 处理器:Intel Centrino Duo 2.0 GHz (T7200)
  2. 内存:2 GB

以下是计数:

  1. 1 秒需要:1995198000(接近 20 亿滴答声,可以)
  2. 1 毫秒:2,159,460(接近 200 万,可以)
  3. 1 微秒:507,408(为什么?)
  4. 1 纳秒:139,000(为什么?)

直到 1 微秒,滴答声与频率一致。然而,在这之下,它不是。此外,我可以可靠地使用循环计数来区分 100 纳秒和 200 纳秒,而不是低于此值。

测量设置:

  1. 测量过程连接到一个处理器。
  2. 进程的优先级设置为最高。
  3. CPU 设置为始终以最高频率运行。

谁能解释原因?是因为睡眠(我使用的是 nanosleep)以这种方式实现的。?

4

2 回答 2

1

nanosleep 的规范

暂停时间可能比请求的时间长,因为参数值被四舍五入到睡眠分辨率的整数倍,或者因为系统调度了其他活动。

于 2014-10-30T14:41:10.537 回答
1

使用 PC 硬件最接近的方法是使用更长持续时间的统计分析。使用 RDTSC 测量时间需要超过一纳秒:ZeroMQ 测试分析

于 2014-11-09T15:04:26.373 回答