如何计算算法的执行时间和实时性

时间:2013-03-14 12:54:39

标签: c algorithm real-time

如何使用clock()??

计算出现实世界时间和程序的执行时间

2 个答案:

答案 0 :(得分:0)

如果需要clock(),我无能为力。如果“获取执行时间”-part是你想要的,你可以看一下gcc(gnu编译器)的profiling选项。您将代码链接到专门编译的库,这些库提供分析信息。

答案 1 :(得分:0)

使用clock()来查找程序的执行时间可能不是一个好主意。

但我可以为你的问题提出一个可能的解决方案。您必须在每个将正在运行的进程发送到等待状态或阻塞状态的C语句之前和之后使用clock()来测量时间。例如,您的程序可能正在等待子进程终止或阻塞,直到用户输入一些数据。所以在这种情况下你的程序没有使用CPU。因此,您必须从程序的总运行时间中扣除此时间。

int sum,n1,n2;
clock_t t1, t2, t3, t4;
long int x;
double dur1,dur2;

t1 = clock();

printf("\nEnter two numbers:\n");

t2 = clock();

scanf("%d%d",&n1,&n2);

t3 = clock();

sum= n1 + n2;

printf("\nSum is %d\n",sum);

t4 = clock();

dur1 = ( double ) ( t4 - t1 ) / CLOCKS_PER_SEC;

dur2 = ( double ) ( ( t4 - t1 ) - ( t3 - t2 ) ) / CLOCKS_PER_SEC;

printf( "\nThe Total Running time of the proces is %lf\n", dur1 ); 
printf( "\nThe CPU time taken by the proces is %lf\n", dur2 ); 

当然,对于任意大的程序,该程序仅给出粗略的估计。对于小型程序,估算并非全部有用。