먼저 1번 clock() 함수를 이용한 측정 방법의 경우는 CLOCKS_PER_SEC에 미리 1000을 나눠줘도 초(s) 단위 이하로는 측정이 안된다.
2번 timeGetTime() 함수를 이용한 측정 방법은 밀리초(ms) 단위까지 측정 가능하지만 라이브러리를 이용해야 해서 귀찮다.
3번 QueeryPerformanceCounter() 함수를 이용한 측정 방법은 4번에서 매크로로 구현되어 좀더 간단하게 사용할 수 있는데, 이 4번 방법의 매크로가 {} 을 사용해 매크로 사이를 묶어버리기 때문에 매크로 사이의 변수를 매크로 이후에 사용할 수 없게 되어버린다. 그래서 매크로를 약간 수정하여 이러한 문제가 없도록 업그레이드 하였다.
#include <Windows.h>
//다음 두줄을 복사해서 쓰시면 됩니다.
// 이 매크로는 Win32 함수를 이용하여 nano second까지 측정할 수 있습니다.
CHECK_TIME_END(time, err); (첫 번째 인자는 float, 두 번째 인자는 BOOL)
원본글과 비교해보면 QueryPerformanceFrequency()가 성공했을 때 { QueryPerformanceCounter(); ... 실행시간 측정을 원하는 코드 ... QueryPerformanceCounter()} 인 것을 QueryPerformanceFrequency()가 성공했을 때 QueryPerformanceCounter(); ... 실행시간 측정을 원하는 코드 ... QueryPerformanceFrequency()가 위에서 성공했을 경우 QueryPerformanceCounter(); 와 같은 구조로 바뀐것을 알 수 있다.