我尝试在+- 100ms内每秒保存一个文件(10%错误)。我遇到的问题是,我的计时测量表明执行花费了1150ms,但实际上它似乎是3或4秒。
到底怎么回事?
如果我发出命令sleep(1),它看起来非常准确。然而,当我测量一件事花了多长时间时,它肯定会偏离很远。
我使用clock()来测量程序的执行情况。所有这些东西都在while循环中。
沃尔特
发布于 2011-01-21 04:42:37
您的问题是,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.004shttps://stackoverflow.com/questions/4752306
复制相似问题