非常精確的測試執行時間(比clock()更精確些)
阿新 • • 發佈:2019-01-05
// timerTest.cpp : 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
/*
QueryPerformanceCounter來查詢定時器的計數值,如果硬體裡有定時器,它就會啟動這個定時器,並且不斷獲取定時器的值,這樣的定時器精度,就跟硬體時鐘的晶振一樣精確的。
*/
LARGE_INTEGER qpc1;
QueryPerformanceCounter(&qpc1);//是返回定時器當前計數值。
LARGE_INTEGER qpf;
QueryPerformanceFrequency(&qpf);//是返回定時器的頻率。
Sleep(1000);
LARGE_INTEGER qpc2;
QueryPerformanceCounter(&qpc2);
LONGLONG ll = qpc2.QuadPart-qpc1.QuadPart;
double d =ll/(double)(qpf.QuadPart);
printf("中間時間是:%f\n",d);
return 0;
}
//
#include "stdafx.h"
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
/*
QueryPerformanceCounter來查詢定時器的計數值,如果硬體裡有定時器,它就會啟動這個定時器,並且不斷獲取定時器的值,這樣的定時器精度,就跟硬體時鐘的晶振一樣精確的。
*/
LARGE_INTEGER qpc1;
QueryPerformanceCounter(&qpc1);//是返回定時器當前計數值。
LARGE_INTEGER qpf;
QueryPerformanceFrequency(&qpf);//是返回定時器的頻率。
Sleep(1000);
LARGE_INTEGER qpc2;
QueryPerformanceCounter(&qpc2);
LONGLONG ll = qpc2.QuadPart-qpc1.QuadPart;
double d =ll/(double)(qpf.QuadPart);
printf("中間時間是:%f\n",d);
return 0;
}