정확한 시간 측정을 위해 QueryPerformanceCounter를 사용하는 방법
QueryPerformanceCounter는 고정밀 타이밍 기능을 제공하는 강력한 Windows API 함수입니다. 게임, 성능 모니터링 도구 등 정확한 시간 측정이 필요한 애플리케이션에서는 구현 방법을 이해하는 것이 중요합니다.
QueryPerformanceCounter를 사용하려면 저장에 사용되는 64비트 정수인 LARGE_INTEGER 변수를 선언해야 합니다. 시간 가치. 다음 코드 조각은 변수를 초기화하는 방법을 보여줍니다.
LARGE_INTEGER li; double PCFreq;
StartCounter() 함수는 현재 틱 수를 쿼리하고 이를 CounterStart 변수에 저장하여 성능 카운터를 초기화합니다. 또한 틱을 초 또는 밀리초로 변환하는 데 사용되는 성능 카운터 빈도를 계산합니다.
void StartCounter() { if (!QueryPerformanceFrequency(&li)) { cout << "QueryPerformanceFrequency failed!\n"; } PCFreq = double(li.QuadPart) / 1000.0; QueryPerformanceCounter(&li); CounterStart = li.QuadPart; }
카운터가 시작된 이후 경과된 시간을 검색하려면 GetCounter() 함수를 사용합니다. 현재 틱 수를 쿼리하고 초기 틱 수를 빼고 경과 시간을 double로 반환합니다.
double GetCounter() { QueryPerformanceCounter(&li); return double(li.QuadPart - CounterStart) / PCFreq; }
대답에 제공된 코드는 이러한 함수를 사용하여 다음과 같은 간단한 타이머를 구현하는 방법을 보여줍니다. 1초 동안 잠든 후 경과된 시간을 출력합니다.
PCFreq 값을 조정하여 타이머의 정밀도를 제어할 수 있습니다. 1000.0으로 설정하면 밀리초 정밀도가 제공되고, 1000000.0은 마이크로초 정밀도가 제공됩니다.
위 내용은 QueryPerformanceCounter는 어떻게 Windows 애플리케이션에서 정확한 시간 측정을 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!