程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++應用windows函數完成計時示例

c++應用windows函數完成計時示例

編輯:關於C++

c++應用windows函數完成計時示例。本站提示廣大學習愛好者:(c++應用windows函數完成計時示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c++應用windows函數完成計時示例正文



//Windows體系下可以用 time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()來對一段法式代碼停止計時

#include <stdio.h>
#include <windows.h>
#include <time.h>                   //time_t time()  clock_t clock()   
#include <Mmsystem.h>               //timeGetTime()   
#pragma comment(lib, "Winmm.lib")   //timeGetTime()   

//應用辦法:將Sleep()函數換成須要測試運轉時光的函數便可。

int main()
{   //用time()來計時,以秒為單元
    time_t timeBegin, timeEnd;
    timeBegin = time(NULL);
    Sleep(1000);
    timeEnd = time(NULL);
    printf("%d\n", timeEnd - timeBegin);


    //用clock()來計時,以毫秒為單元
    clock_t  clockBegin, clockEnd;
    clockBegin = clock();
    Sleep(800);
    clockEnd = clock();
    printf("%d\n", clockEnd - clockBegin);


    //用timeGetTime()來計時,以毫秒為單元
    DWORD  dwBegin, dwEnd;
    dwBegin = timeGetTime();
    Sleep(800);
    dwEnd = timeGetTime();
    printf("%d\n", dwEnd - dwBegin);


    //用GetTickCount()來計時,以毫秒為單元
    DWORD  dwGTCBegin, dwGTCEnd;
    dwGTCBegin = GetTickCount();
    Sleep(800);
    dwGTCEnd = GetTickCount();
    printf("%d\n", dwGTCEnd - dwGTCBegin);


    //用QueryPerformanceCounter()來計時,以微秒為單元
    LARGE_INTEGER  large_interger;
    double dff;
    __int64  c1, c2;
    QueryPerformanceFrequency(&large_interger);
    dff = large_interger.QuadPart;
    QueryPerformanceCounter(&large_interger);
    c1 = large_interger.QuadPart;
    Sleep(800);
    QueryPerformanceCounter(&large_interger);
    c2 = large_interger.QuadPart;
    printf("本機高精度計時器頻率%lf\n", dff);
    printf("第一次計時器值%I64d\n第二次計時器值%I64d\n計時器差%I64d\n", c1, c2, c2 - c1);
    printf("計時%lf毫秒\n\n", (c2 - c1) * 1000 / dff);
    return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved