Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Private Bytes
- ASW(Application SpaceWarp)
- ColorGradingLutPass
- Three(Two) Tone Shading
- working set
- Cartoon Rendering
- 프로그래밍 기초
- Cell Look
- 가상 바이트
- 3d
- Rim Light
- 벡터
- AppSW
- Cell Shader
- C언어
- Toon Shader
- Specular
- Windows Build
- VR
- 게임 수학
- 개인 바이트
- Virtual Byte
- 작업 집합
- URP
- URP로 변경
- OculusMotionVectorPass
- 메모리 누수
Archives
- Today
- Total
WinCNT
윈도우OS의 시간 측정 함수 조사 본문
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()는 현재 시간을 반환하는 함수이다
4. QueryPerformenceCounter
시간 측정에 사용할 수 있는 고해상도(1 마이크로초 이하) 타임스탬프인 성능 카운터의 현재 값을 검색한다
1 마이크로초 이하의 단위로 측정할 수 있기 때문에 GetTickCount() 함수나 timeGetTime() 함수보다 더욱 정밀한 시간 측정이 가능하다
다만 QueryPerformenceCounter는 성능 카운터를 반환할 뿐, 시간을 반환하는 것은 아니기 때문에
시간을 측정하기 위해서는 1초당 성능 카운터 수를 반환하는 QueryPerformenceFrequency() 함수와 같이 사용해야 한다
'게임 프로그래밍(학습 내용 정리) > 시스템 프로그래밍' 카테고리의 다른 글
동기화 방법들 (0) | 2022.04.08 |
---|---|
유저 모드에서의 스레드 동기화 (0) | 2022.03.29 |
스레드 스케줄링 (0) | 2022.03.28 |
Exception Filter (0) | 2022.03.22 |
실제 핸들과 허위 핸들(Pseudo Handle) (0) | 2022.03.22 |