Clock_getres가 Ubuntu 16.04 Clock_gettime()의 해상도를 얻는 올바른 함수입니까?

Clock_getres가 Ubuntu 16.04 Clock_gettime()의 해상도를 얻는 올바른 함수입니까?

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초).

관련 정보