타이밍 기능 중, time
, clock
getrusage
, clock_gettime
, gettimeofday
그리고 timespec_get
, 나는 그들이 구현하는 방법을 명확하게 이해하고 싶은 어떤 상황에서 내가 그들을 사용해야 알기 위해 자신의 반환 값 것입니다.
먼저 wall-clock 값 을 반환하는 함수를 프로세스 또는 스레드 값을 반환하는 함수와 비교 하여 분류해야 합니다 . 전달 된 매개 변수 에 따라 gettimeofday
벽시계 값, clock_gettime
벽시계 값 또는 프로세스 또는 스레드 값을 리턴 Clock
합니다. getrusage
및 clock
공정 값을 반환합니다.
그런 다음 두 번째 질문은 이러한 기능의 구현과 결과적으로 정확성에 관한 것입니다. 이러한 기능을 사용하는 하드웨어 또는 소프트웨어 메커니즘
것으로 보인다 getrusage
용도에만 커널 틱 (보통 긴 1MS)과 결과적으로는 MS보다 더 정확하지 않을 수 있습니다. 맞아? 그런 다음이 getimeofday
기능은 사용 가능한 가장 정확한 기본 하드웨어를 사용하는 것 같습니다. 결과적으로 정확도는 최신 하드웨어에서 일반적으로 마이크로 초 (API 때문에 더 이상 될 수 없음)입니다. 에 대해 무엇을 clock
, "근사"에 대한 매뉴얼 페이지가 말하는, 그것은 무엇을 의미합니까? 무엇에 대해 clock_gettime
, API는, 나노초에 그것이 하드웨어를 기본 것은 허용하는 경우 그렇게 정확하게 할 수 있다는 의미는 무엇입니까? 단 조성은 어떻습니까?
다른 기능이 있습니까?
clock_gettime
,의 따라서 사용gettimeofday()
보다 더 다양한 조금 인clock_gettime()