我正在尝试在 +-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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top