在C++ for Linux中,我试图做一些事情每微秒/纳秒,我目前正在使用下面的nanosleep函数。它的工作原理,但是如果代码循环数百万次,这变得昂贵。我正在寻找一个高分辨率定时器,可以实现非常精确的定时(应用程序是音频/视频)。有任何想法吗?寻找一个高分辨率的计时器
struct timespec req = {0};
req.tv_sec = 0;
req.tv_nsec = 1000000000L/value;
for(long i = 0; i < done; i++)
{
printf("Hello world");
nanosleep(&req, (struct timespec *)NULL);
}
有什么问题''? –
chris
如果您的CPU具有4 GHz的时钟,则在纳秒内有4个时钟周期。即使在这样的速度下,你也不能每秒都做很多事情。 –
我们在谈论什么样的Linux和处理器?对于非实时系统,任何高于ms精度的东西都已经相当雄心勃勃。微秒(更不用说纳秒级)的准确度是你在大多数实时系统上都不会争取的。 – MikeMB