0

clock() を使用して、現実世界の時間とプログラムの実行時間をどのように計算しますか??

4

2 に答える 2

0

プログラムの実行時間を調べるのに clock() を使用するのは得策ではないかもしれません。

しかし、私はあなたの問題に対する 1 つの可能な解決策を提案することができます。実行中のプロセスを待機状態またはブロック状態にするすべての 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 ); 

もちろん、このプログラムは、任意の大規模なプログラムの場合に大まかな見積もりの​​みを提供します。小規模なプログラムの場合、見積もりがすべて役立つわけではありません。

于 2013-03-14T16:37:53.000 に答える
0

clock() が要件である場合、私は助けることができません。「実行時間の取得」部分が必要な場合は、gcc (gnu コンパイラ) のプロファイリング オプションを調べてください。プロファイリング情報を提供する特別にコンパイルされたライブラリにコードをリンクします。

于 2013-03-14T13:46:26.463 に答える