nanosleep - 需要低分辨率

时间:2011-10-25 18:03:39

标签: cpu-usage

我们正在运行SLES10(2.6.16.60-0.54.5-smp)和SLES11(2.6.32.12-0.7-default)。

在2.6.16之后,纳秒被改为使用高分辨率计时器 我们的代码必须在SLES10和SLES11上以类似的特性运行。目前因为SLES11内核配置为高分辨率计时器(我们可能不会更改),我们发现CPU使用率远高于SLES10。一个简单的循环纳秒睡眠将显示在SLES11的“顶部”,SLES10上没有。

我们可以在代码中将调用更改为纳秒,但不知道要改变什么以使它们在两个平台上都相同。

更多信息: 在SLES11上,内核定时器中断频率约为。 4016赫兹或更高 在SLES10上,内核定时器中断频率约为。 250赫兹

在timespec的tv_nsec中应该使用什么值来降低SLES11平台上的CPU使用率?

1 个答案:

答案 0 :(得分:0)

以前的行为(以250Hz的中断频率睡眠纳秒)平均会睡眠1/500秒。

如果你想要和以前大致相同的行为,你可以简单地睡眠1/500秒,即2,000,000纳秒。