题
我正在尝试在 +-100ms(10%错误)内每秒保存文件。我遇到的问题是,我的时间测量是说执行时间为1150毫秒,但实际上似乎是3或4秒。
这是怎么回事?
如果我发出命令,请睡觉(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
不隶属于 StackOverflow