在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