获得CPU花费在流程上的时间与花在流程问题c ++上的世界时间

时间:2011-02-07 20:24:26

标签: c++ time cpu-time

我正在使用两种不同的方式来获取时钟()和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没有在这个过程上花费那么多时间。我使用的是正确的功能吗?感谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

clock()不适合便携式使用时间。在windows下,它被定义为返回经过的墙上时间,在unix类型系统上,它返回经过的处理器时间。

我确定必须是一个便携式解决方案,我不知道在哪里看。我会通过提升开始追捕。