Clock_getres가 Ubuntu 16.04 Clock_gettime()의 해상도를 얻는 올바른 함수입니까?
그렇다면 계산에 결과를 어떻게 사용할 수 있습니까?
64비트 정수의 정밀도는 15비트입니다. IEEE 754-2008 표준 십진수64의 경우 52비트 배정밀도 유효 숫자는 53비트 분해능을 제공합니다. 공식이 있었으면 좋겠습니다.
@Julie Pelletier는 하루 전에 Linux Clock_gettime의 최적 시간 단위가 5ms라는 뛰어난 테스트 결과에 대해 나에게 말했습니다.
답변1
다음을 사용하여 clock_gettime 해상도를 측정했습니다.
struct timespec now;
struct timespec resolution;
clock_gettime(CLOCK_MONOTONIC, &now);
clock_getres(CLOCK_MONOTONIC, &resolution);
printf("secs %d nanoseconds %d\n",resolution.tv_sec, resolution.tv_nsec);
결과 :
lacrosse@lacrosse-ThinkStation-S10:~/Debug$ ./a.out 초 0 나노초 1
이 결과는 Rutgers Computer Science Department의 온라인 문서를 읽은 후 예상했던 것과는 다릅니다. 이 문서에서는 훨씬 더 높을 것이라고 명시했습니다(예: 1초).