関数を使用して関数の時間を計ろうとしていgettimeofday()
ます。マイクロ秒単位の時間を取得できますが、秒単位の時間を取得するために a で割ろうとするとlong
、値が単一の に切り捨てられinteger
ます。なぜこれが起こっているのかについての洞察を持っている人はいますか? a による除算long = 1000000.0
は、この種の切り捨てを防ぐと想定していました。
機能のタイミング:
struct timeval t1,t2;
gettimeofday(&t1, NULL);
// Computes C - C1 - using single thread
for (i=0; i < n; i++)
for (j=0; j < p; j++)
{
C1[i][j]=0;
for (k=0; k < m; k++)
C1[i][j] += A[i][k]*B[k][j];
}
gettimeofday(&t2, NULL);
ここで適用される分割:
long divider = 1000000.0;
long elapsed = ((t2.tv_sec - t1.tv_sec) * 1000000.0L) + (t2.tv_usec - t1.tv_usec);
elapsed = (elapsed/divider);
printf("Time in seconds: %ld seconds\n", elapsed);
どんな助けでも大歓迎です。