2
我試圖在+ - 100ms(10%錯誤)內每秒保存一個文件。我遇到的問題是我的時間測量是說執行花費了1150毫秒,但實際上它似乎是3或4秒。n900 - maemo - 時間
發生了什麼事?
如果我發出命令sleep(1),它看起來非常準確。但是,當我測量某件東西需要花費多長時間時,它必須關閉很多。
我正在使用clock()來測量程序的執行。所有這些東西都在一段時間內。
沃爾特
我試圖在+ - 100ms(10%錯誤)內每秒保存一個文件。我遇到的問題是我的時間測量是說執行花費了1150毫秒,但實際上它似乎是3或4秒。n900 - maemo - 時間
發生了什麼事?
如果我發出命令sleep(1),它看起來非常準確。但是,當我測量某件東西需要花費多長時間時,它必須關閉很多。
我正在使用clock()來測量程序的執行。所有這些東西都在一段時間內。
沃爾特
您的問題是由您的過程clock()
報告你的CPU時間,這是通常採用的是「真實」的時間不同。
例如以下代碼:
#include <time.h>
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
clock_t scl = clock();
sleep(1);
cout << "CPU clock time " << clock()-scl << endl;
}
給出
time ./a.out
CPU clock time 0
real 0m1.005s
user 0m0.000s
sys 0m0.004s