2

我试图在 +- 100 毫秒内每秒保存一个文件(10% 错误)。我遇到的问题是我的时间测量表明执行需要 1150 毫秒,但实际上它似乎是 3 或 4 秒。

这是怎么回事?

如果我发出命令 sleep(1),它似乎非常准确。然而,当我测量某件事花了多长时间时,它一定会偏离很多。

我正在使用 clock() 来测量程序执行。所有这些东西都在一个while循环中。

沃尔特

4

1 回答 1

3

您的问题是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
于 2011-01-20T20:42:36.510 回答