如何使用clock()??
计算出现实世界时间和程序的执行时间答案 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 );
当然,对于任意大的程序,该程序仅给出粗略的估计。对于小型程序,估算并非全部有用。