1. 程式人生 > >非常精確的測試執行時間(比clock()更精確些)

非常精確的測試執行時間(比clock()更精確些)

// 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;
}