用C检查过程持续时间

时间:2013-09-02 06:03:08

标签: c clock operation time.h

我正在使用C代码检查进程持续时间。 它适用于Windows 32位环境,但不适用于Linux 64位。

至少我的过程需要超过3分钟,但它显示0.062秒。 我的代码如下。

#include <stdio.h>
#include <time.h>
#include <Windows.h>

int main(void)
{
clock_t start = clock();

//....... doing something. Sorry:D

printf("%.3f sec\n", (double)(clock() - start) / CLOCKS_PER_SEC);
return 0;
}

如何修复此代码以在64位Linux中工作? 感谢。

2 个答案:

答案 0 :(得分:2)

函数clock(3)不会产生经过的时间:

  

返回的值是到目前为止使用的CPU时间作为clock_t。

作为最简单的示例,如果您的进程为I / O休眠或阻塞,它将不会占用太多CPU时间。如果您需要衡量实际持续时间,可以使用time(3)difftime(3)clock_gettime等。


附注:我真的不明白为什么代码似乎在Windows中有效,但更改为time + difftime应该适用于两个平台。

答案 1 :(得分:0)

为什么不使用time command来进行各种时间测量?