0

我正在使用 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 中工作?谢谢。

4

2 回答 2

2

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

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

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


旁注:我真的不明白为什么代码似乎可以在 Windows 中运行,但更改为time+difftime应该可以在两个平台上运行。

于 2013-09-02T06:08:01.583 回答
0

为什么不使用time 命令来获取各种时间测量值?

于 2013-09-02T06:48:48.320 回答