我们同时运行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上,内核计时器中断频率大约是。在SLES10上,内核定时器中断频率约为4016 Hz或更高。250赫兹
应该在timespec的tv_nsec中使用什么值来降低SLES11平台上的CPU使用率?
发布于 2011-10-26 02:11:16
之前的行为(以250 of的中断频率睡眠1纳秒)平均睡眠时间为1/500秒。
如果您想要与以前大致相同的行为,您可以简单地睡眠1/500秒,即2,000,000纳秒。
https://stackoverflow.com/questions/7893741
复制相似问题