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



如何使用clock()计算真实世界的时间和程序的执行时间?

如果clock()是必需的,我无能为力。如果"获取执行时间"部分是您想要的,那么您可以看看gcc (gnu编译器)的分析选项。您将把代码链接到专门编译的库,这些库提供了分析信息。

使用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 %dn",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 %lfn", dur1 ); 
printf( "nThe CPU time taken by the proces is %lfn", dur2 ); 

当然,对于任意大的程序,这个程序只会给出一个粗略的估计。

最新更新