関数にかかる時間を測定しようとしています。
少し問題があります。正確にフローティングポイントを使用しようとしていますが、を使用してコードを印刷するたびに、%lf
次の2つの答えのいずれかが得られます1.000
。...または0.000
...これにより、コードが正しいかどうか疑問に思います。 :
#define BILLION 1000000000L;
// Calculate time taken by a request
struct timespec requestStart, requestEnd;
clock_gettime(CLOCK_REALTIME, &requestStart);
function_call();
clock_gettime(CLOCK_REALTIME, &requestEnd);
// Calculate time it took
double accum = ( requestEnd.tv_sec - requestStart.tv_sec )
+ ( requestEnd.tv_nsec - requestStart.tv_nsec )
/ BILLION;
printf( "%lf\n", accum );
このコードのほとんどは私が作成したものではありません。このサンプルページには、次の使用法を示すコードが含まれていますclock_gettime
。
誰かが私に何が間違っているのか、またはなぜ私がint
値だけを取得しているのか教えてもらえますか?