gettimeofday差异没给我一个时间范围

时间:2013-02-06 06:35:38

标签: c time

我在c中写了一些基本的东西,执行shell脚本需要多长时间。

我有

gettimeofday(&start, NULL);
// code here

gettimeofday(&end, NULL);
// print end - start

我知道timeval结构有tv_sec和tv_usec,但是对于像“睡眠3”这样的脚本来说,我仍然为这个结果得到0 - 开始差异。有没有猜到为什么?

2 个答案:

答案 0 :(得分:1)

您应该阅读:gettimeofday() should never be used to measure time

请尝试clock_gettime(CLOCK_MONOTONIC, ...)

答案 1 :(得分:0)

试试这个例子:

double dtime(){
    double t;
    struct timeval tv;
    gettimeofday(&tv, NULL);
    t = tv.tv_sec + ((double)tv.tv_usec)/1e6;
    return t;
}

…
double t0 = dtime();
…
printf("Time spend: %g seconds\n", dtime()-t0);