저는 거대한 시뮬레이션/그래픽 엔진을 사용하고 있습니다.Mac OS X C++ 프로그램에서 타임 스탬프를 어떻게 기록합니까?
비행중인 많은 이벤트가 있습니다.
(프로그램 실행 시작 후 밀리 초 단위로 측정) 타임 스탬프를 지정하고 싶습니다.
이 용도로 사용해야하는 것은 무엇입니까? [어떤 라이브러리?]
저는 거대한 시뮬레이션/그래픽 엔진을 사용하고 있습니다.Mac OS X C++ 프로그램에서 타임 스탬프를 어떻게 기록합니까?
비행중인 많은 이벤트가 있습니다.
(프로그램 실행 시작 후 밀리 초 단위로 측정) 타임 스탬프를 지정하고 싶습니다.
이 용도로 사용해야하는 것은 무엇입니까? [어떤 라이브러리?]
Mac OS X은 Unix 기반이므로 gettimeofday()
을 사용해보십시오. 시스템 클럭의 해상도까지 초와 마이크로 초를 반환합니다.
#include <sys/types.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
gettimeofday()는 대부분 정상적으로 작동하지만 예외가 있습니다 (예 : 사용자가 시스템 날짜/시간을 변경할 때 더 좋은 방법이 될 것이다 :
이 함수에 의해 반환되는 값은 밀리 초-이후 부팅 될 것이라고#include <CoreServices/CoreServices.h>
unsigned long long GetTimeSinceBootInMilliseconds()
{
UnsignedWide uw = AbsoluteToNanoseconds(UpTime());
return ((((unsigned long long)uw.hi)<<32)|(uw.lo))/1000000;
}
주 그래서 당신은 밀리 초 - 이후 프로그램 시작, 프로그램 시작시 한 번이 메소드를 호출하려면, 그 값을 저장하고 나중에 결과에서 빼십시오.