clock()関数の誤差
プログラムの実行時間の計測について質問させていただきます。
現在,実行時間の計測でclock()関数を使っているのですが誤差が出ます。
timeコマンド(と実際に時計で測った時間)では95分、clock()関数で測った
プログラム全体の実行時間は1376秒(約23分)と誤差が出る状態にあります。
プログラムでclock()関数を使っているのはmain()だけです。
printf()内がおかしいのでしょうか?
詳しい方、回答よろしくおねがいします。
↓プログラム
#include<time.h>
(中略)
clock_t t1,t2,t3,t4;
(中略)
main()
{
struct zahyo P,Q;
int a,b,prime,Ord,sec;
scanf("%d",&a);
(中略)
printf("Q.y = "); scanf("%d",&Q.y);
t1=clock();
Ord=OrdCal(P,a,prime);
t2=clock();
printf("Ord = %d\n",Ord);
printf("OrdCal:%f(s)\n",(double)(t2-t1)/CLOCKS_PER_SEC);
t3=clock();
PohlingBsgs(P,Q,a,prime,Ord);
sec=secretkey();
t4=clock();
printf("secretkey=%d\n",sec);
printf("Decipher:%f(s)\n",(double)(t4-t3)/CLOCKS_PER_SEC);
printf("Total :%f(s)\n",(double)(t4-t1)/CLOCKS_PER_SEC);
}
実行結果
Ordcal:74.170000(s)
Decipher:1302.722704(s)
Total :1376.902104(s)
real 94m33.445s
user 94m30.900s
sys 0m0.980s
お礼
できました!ありがとうございました!