게임 프로그래밍(학습 내용 정리)/시스템 프로그래밍
윈도우OS의 시간 측정 함수 조사
WinCNT_SSS
2022. 3. 28. 17:37
1. GetTickCount64()
GetTickCount64() 함수는 시스템이 시작된 이후의 경과된 시간(밀리초)를 검색한다
시간을 측정하기 위해 타이머를 사용하는데 그 타이머의 간격(보통 10~16ms)으로 시간을 측정하기 때문에
다른 함수들 보다 때문에 해상도가 낮다는 단점이 있다
참고로 GetTickCount()라는 함수도 있지만 최대 49.7일 이상이 넘어가면 오버플로우가 발생한다는 단점이 존재하며,
이러한 문제점을 해결하기 위해 등장한 것이 GetTickCount64() 함수이다
(GetTickCount64() 함수는 약 5억 8천년까지 측정 가능함)
2. timeGetTime()
timeGetTime() 함수는 Windows가 시작된 이후 경과된 시스템 시간(밀리초)을 검색한다
GetTickCount와 비슷하지만 좀 더 정밀한 해상도의 시간 측정이 가능하다
3. std::chrono::system_clock::now()
chrono는 C++가 표준으로 제공하는 시간 측정 관련 라이브러리이며
QueryPerformanceCounter보다 정밀한 해상도를 가진다(나노초까지 측정이 가능)
system_clock는 chrono의 가장 일반적인 clock 클래스이며,
now()는 현재 시간을 반환하는 함수이다