3

我正在使用两种不同的方法来获取时钟()和 getLocalTime(),因为我想要在我的进程上花费的 CPU 时间和在这个进程上花费的挂钟时间。目前我这样做:

printf("CPU Time: %gms \n", (((double)(finish-start)) / CLOCKS_PER_SEC)*1000.0);
printf("Clock Time: %ldms \n", (end.sec-begin.sec)*1000+(end.msec-begin.msec));

但他们都给了我同样的结果!(在运行约 30 秒的东西上)我知道 CPU 并没有在进程上花费那么多时间。我是否使用了正确的功能?谢谢。

4

3 回答 3

1

没有真正的跨平台,但在 Windows 上有两种可能性:

我自己没有使用过它们,但我相信两者都会给出相同的结果

于 2011-02-07T22:29:09.253 回答
1

在 Unix 系统上,CPU 时间可以通过 getrusage() 获得。

于 2011-02-07T20:30:56.253 回答
0

clock()不是便携式经过时间的正确工具。在 windows 下,它被定义为返回经过的挂墙时间,在 unix 类型的系统上,它返回经过的处理器时间。

我确定必须有一个便携式解决方案,但我不确定在哪里看。我会通过提升来寻找开始。

于 2011-02-07T21:08:22.980 回答