C++計時器:毫秒級和微秒級

一、毫秒級ios

  1. 使用GetTickCount()獲取系統啓動所通過的毫秒數
#include<iostream>  
using namespace std;    

int main(){
    DWORD start= ::GetTickCount(); //獲取毫秒級數目  
    Sleep(1000);  
    cout << ::GetTickCount() - start<< endl;  
    system("pause");  
}

   2. 使用clock()windows

#include <iostream>
#include <time.h>
#include <Windows.h>

using namespace std;

int main(){
    clock_t start;
    start = clock();
    Sleep(1000);
    cout<<clock()-start<<" ms"<<endl;
    system("pause");
}

 

二、微秒級spa

  1. 先用QueryPerformanceFrequency()獲取時鐘週期再調用QueryPerformanceCounter()獲取CPU從開機以來執行的時鐘週期數
#include <stdio.h>  
#include <math.h>  
#include <windows.h>  

using namespace std;

void main()
{
    LARGE_INTEGER cpuFreq;
    LARGE_INTEGER startTime;
    LARGE_INTEGER endTime;
    double rumTime=0.0;
    QueryPerformanceFrequency(&cpuFreq);
    QueryPerformanceCounter(&startTime);
    Sleep(1000);
    QueryPerformanceCounter(&endTime);
    rumTime = (((endTime.QuadPart - startTime.QuadPart) * 1000.0f) / cpuFreq.QuadPart);
    cout << rumtTime << " ms" << endl;
}
相關文章
相關標籤/搜索