BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)獲取系統的計數器的頻率
BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)獲取計數器的值(原文出處:coder_xia的博客:http://blog.csdn.net/coder_xia/article/details/6566708)
然後用兩次計數器的差除以Frequency就得到時間。
測試程序如下:
- #include <iostream>
- #include <windows.h>
- using namespace std;
- int main()
- {
- LARGE_INTEGER m_nFreq;
- LARGE_INTEGER m_nBeginTime;
- LARGE_INTEGER nEndTime;
- QueryPerformanceFrequency(&m_nFreq); // 獲取時鐘週期
- QueryPerformanceCounter(&m_nBeginTime); // 獲取時鐘計數
- Sleep(100);
- QueryPerformanceCounter(&nEndTime);
- cout << (double)(nEndTime.QuadPart-m_nBeginTime.QuadPart)*1000/m_nFreq.QuadPart << endl;
- }
需要注意的就是結果需要強制轉換爲double,不然會得到如下錯誤:<< is ambiguous