Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取花在进程上的CPU时间与花在进程问题c上的世界时间+;_C++_Time_Cpu Time - Fatal编程技术网

C++ 获取花在进程上的CPU时间与花在进程问题c上的世界时间+;

C++ 获取花在进程上的CPU时间与花在进程问题c上的世界时间+;,c++,time,cpu-time,C++,Time,Cpu Time,我使用两种不同的方法来获取time clock()和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)); 但他们都给了我同

我使用两种不同的方法来获取time clock()和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在进程上没有花费那么多时间。我是否使用了正确的函数?谢谢。

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

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


我确信一定有一个可移植的解决方案,但我不确定该去哪里寻找。我会在boost中寻找一个开始

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

  • :返回进程在内核模式和用户模式下花费的时间
  • :返回进程花费的CPU周期数(需要Windows Vista)

我自己也没有用过,但我相信两者都会得到相同的结果

现在我在windows上,它在Linux上运行得很好,我不知道为什么它不配合。