c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例
//Windows系統(tǒng)下可以用 time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()來對(duì)一段程序代碼進(jìn)行計(jì)時(shí)
#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()函數(shù)換成需要測(cè)試運(yùn)行時(shí)間的函數(shù)即可。
int main()
{ //用time()來計(jì)時(shí),以秒為單位
time_t timeBegin, timeEnd;
timeBegin = time(NULL);
Sleep(1000);
timeEnd = time(NULL);
printf("%d\n", timeEnd - timeBegin);
//用clock()來計(jì)時(shí),以毫秒為單位
clock_t clockBegin, clockEnd;
clockBegin = clock();
Sleep(800);
clockEnd = clock();
printf("%d\n", clockEnd - clockBegin);
//用timeGetTime()來計(jì)時(shí),以毫秒為單位
DWORD dwBegin, dwEnd;
dwBegin = timeGetTime();
Sleep(800);
dwEnd = timeGetTime();
printf("%d\n", dwEnd - dwBegin);
//用GetTickCount()來計(jì)時(shí),以毫秒為單位
DWORD dwGTCBegin, dwGTCEnd;
dwGTCBegin = GetTickCount();
Sleep(800);
dwGTCEnd = GetTickCount();
printf("%d\n", dwGTCEnd - dwGTCBegin);
//用QueryPerformanceCounter()來計(jì)時(shí),以微秒為單位
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("本機(jī)高精度計(jì)時(shí)器頻率%lf\n", dff);
printf("第一次計(jì)時(shí)器值%I64d\n第二次計(jì)時(shí)器值%I64d\n計(jì)時(shí)器差%I64d\n", c1, c2, c2 - c1);
printf("計(jì)時(shí)%lf毫秒\n\n", (c2 - c1) * 1000 / dff);
return 0;
}
- C++ clock()解析如何使用時(shí)鐘計(jì)時(shí)的應(yīng)用
- 總結(jié)UNIX/LINUX下C++程序計(jì)時(shí)的方法
- C++獲取當(dāng)前系統(tǒng)時(shí)間的方法總結(jié)
- C++中獲取UTC時(shí)間精確到微秒的實(shí)現(xiàn)代碼
- C++指針作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí)需要注意的一些問題
- C#調(diào)用C++版本dll時(shí)的類型轉(zhuǎn)換需要注意的問題小結(jié)
- C++函數(shù)返回值為對(duì)象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)
- C++設(shè)置系統(tǒng)時(shí)間及系統(tǒng)時(shí)間網(wǎng)絡(luò)更新的方法
- C++如何實(shí)現(xiàn)簡(jiǎn)單的計(jì)時(shí)器詳解
相關(guān)文章
詳解C++中遞增運(yùn)算符重載的實(shí)現(xiàn)
本文主要詳解運(yùn)算符重載里的遞增運(yùn)算符重載;遞增和遞減原理是一樣的,這里就只分享遞增的重載;提到遞增遞減,我們都知道又前置和后置兩種方法, 那今天就詳解一下前置遞增和后置遞增的細(xì)節(jié),拿捏遞增運(yùn)算符重載2022-06-06
使用C++ Matlab中的lp2lp函數(shù)教程詳解
本文介紹如何使用C++編寫數(shù)字濾波器設(shè)計(jì)算法,實(shí)現(xiàn)Matlab中的lp2lp函數(shù),將低通濾波器轉(zhuǎn)換為參數(shù)化的低通濾波器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04
java 出現(xiàn)NullPointerException的原因及解決辦法
這篇文章主要介紹了java 出現(xiàn)NullPointerException的原因及解決辦法的相關(guān)資料,這里說明出現(xiàn)NullPointerException 的原因的總結(jié),并說明該如何解決,需要的朋友可以參考下2017-08-08
C和C++如何實(shí)現(xiàn)互相調(diào)用詳解
在學(xué)習(xí)c++中用到一些古老的c語言庫時(shí),在工作中我們經(jīng)常要使用C和C++混合編程,下面這篇文章主要給大家介紹了關(guān)于C和C++如何實(shí)現(xiàn)互相調(diào)用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
c實(shí)現(xiàn)linux下的數(shù)據(jù)庫備份
本文給大家簡(jiǎn)單介紹下c實(shí)現(xiàn)linux下的數(shù)據(jù)庫備份的方法和具體的源碼,十分的實(shí)用,有需要的小伙伴可以參考下。2015-07-07

