gettimeofday()
함수를 사용하여 함수 시간을 측정하려고합니다. 마이크로 초 단위로 시간을 얻을 수 있지만 long
으로 시간을 초 단위로 나누려고 할 때 내 값이 단일 integer
으로 잘립니다. 왜 이런 일이 일어나는 지에 대한 통찰력이 있습니까? long = 1000000.0
으로 나누면이 종류의 잘림을 방지 할 수 있다고 생각했습니다. 기능의오랫동안 잘리지 않음 - C
타이밍 :
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);
.
왜 두 번 사용하지 않습니까? long은 정수 유형입니다. – rerun
'long '은 정수형이라는 것을 알고 계십니까? –
아, 사과드립니다. double을 사용하여 테스트했지만 printf의 형식 코드는 변경하지 않았습니다. 도와 주셔서 감사합니다. –