1

我正在尝试计算我的代码的运行时间。我使用以下代码。

Gettime(start time)
loop
{
   function 1 
   function 2 
   system(compiled excuetable file1 )
   function 4 
   system(compiled excuetable file2 )
   Gettine(time2)
}

然后我打印出来time2-starttime以获取每个步骤的时间成本。我使用不同的时间函数(时钟、gettimeofday、getusage)来测量它们。

有一个问题:我知道系统调用函数(编译的可执行文件 1 和编译的可执行文件 2)的成本高于主循环中的所有其他函数。因为它内部有自己的 gettime 函数,并且显示它的成本超过 1 秒,而总 (time2-starttime) 只给了我 0.5 秒。

那么这是否意味着(time2-starttime)我现在不包括在 system() 上花费的时间?

4

1 回答 1

0

我遇到了同样的问题,我解决了gettimeofday。例子:

#include <sys/time.h>
int main(){
        struct timeval tvs,tve;
        gettimeofday(&tvs,NULL);
        //system("./test");
        gettimeofday(&tve,NULL);
        double span = tve.tv_sec-tvs.tv_sec + (tve.tv_usec-tvs.tv_usec)/1000000.0;
        printf("time: %.12f\n",span);
        return 0;
}
于 2015-07-24T06:09:11.127 回答