使用clock()函数计算C语言中system()命令的运行时间

时间:2015-08-21 03:37:01

标签: c matlab system clock cpu-time

我正在尝试计算C程序中系统命令所用的时间。 我试图使用C中的system()函数从C调用MATLAB例程。我想计算从调用系统()的时间消耗多少cputime,MATLAB运行,退出并将控制权返回给C.我的伪代码片段如下:

void main()
{
    clock_t matlab_begin, matlab_end;
    matlab_begin = clock();

    system(/String for invoking MATLAB routine/);
    printf("MATLAB ENDED");

    matlab_end = clock();

    total_time_taken = (float)(matlab_end - matlab_begin)/CLOCKS_PER_SEC;
}

total_time_taken的值达到0.03秒。而当我计算从MATLAB例程开始运行我的MATLAB脚本到使用cputime函数在MATLAB中结束所用的cputime时,我最终得到大约11秒。

我想知道为什么这两个运行时间如此不同?在MATLAB完成其作业并退出并将控制权交还给系统命令之后,系统()命令之后的print语句才会执行。因此,理想情况下,运行时应该是相同的,但它们不会!

请帮忙! 感谢。

1 个答案:

答案 0 :(得分:2)

我相信你的C代码中的clock调用只是给你C程序的时间。 system调用正在启动另一个程序(在本例中为Matlab)。当您从C程序中的clock获得结果时,您没有看到任何Matlab的执行时间。 0.03秒就是启动主程序,调用clock并启动Matlab所需的时间。

另见 The C `clock()` function just returns a zero