計算一段代碼執(zhí)行時間


INT64GetTime_ms(void)
{
#ifdef _MSC_VER
LARGE_INTEGER m_nFreq;
LARGE_INTEGER m_nTime;
QueryPerformanceFrequency(&m_nFreq);
QueryPerformanceCounter(&m_nTime);
return m_nTime.QuadPart *1000/ m_nFreq.QuadPart;
#elif defined(__GNUC__)structtimeval tv_date;
gettimeofday(&tv_date,
NULL);
return(INT64)tv_date.tv_sec *1000+ (INT64)tv_date.tv_usec;
#endif
}
定義三個時間參數(shù):
INT32time;
INT64StartTime, EndTime;
使用:
StartTime = GetTime_ms();//在需要測試的代碼前一行計算開始時間
EndTime = GetTime_ms();
//結(jié)果代碼的下一行計算結(jié)束時間
time = (INT32)(EndTime - StartTime);
//計算測試代碼的運(yùn)行時間
printf(
"運(yùn)行時間 = %d ms\n", time);
/////////////////////////////////////////////////////////////
附:項目中使用到的一個性能測試類
#ifndef _PERFORMANCE_TEST_
#define _PERFORMANCE_TEST_
#if (!defined(_WIN32) &&!defined(_WIN32_WCE))
#include
#include
#include
#include
#include
#include
#include
#include
#else
#ifdef? _WIN32_WCE
#else
#include
#endif
#include
#include
#endif //(!defined(_WIN32) &&? !defined(_WIN32_WCE))
#include "SNDataTypeDefine.h"
/************************************************************************
*概述:性能測試類.
*功能說明:
*用于需要進(jìn)行性能測試的地方.可以對代碼塊進(jìn)行性能測試,輸出該代碼段所消耗的時間以及cpu占用率等信息.
*使用范例:
*PerformanceTest objPerformanceTest;
*objPerformanceTest.begin();//讀取測試起始時間
*testMethod();//在此處添加待測試的方法
*objPerformanceTest.end();//讀取測試結(jié)束時間
*objPerformanceTest.printWasteTime();//打印測試使用時間锯七,以us為單位
*objPerformanceTest.printCpuTime();//打印Cpu使用時間,包括用戶時間和系統(tǒng)時間及其占用比率
************************************************************************/
class PerformanceTest
{
public:
PerformanceTest();
~PerformanceTest();
public:
/************************************************************************
*概述:啟動測試.
*輸入:
*無
*輸出:
*無
*返回值:
*無
*功能描述:
*在測試程序調(diào)用前先調(diào)用該方法以記錄測試啟動時間.
************************************************************************/
void begin();
/************************************************************************
*概述:結(jié)束測試.
*輸入:
*無
*輸出:
*無
*返回值:
*無
*功能描述:
*在測試程序后調(diào)用該方法以記錄測試結(jié)束時間.
************************************************************************/
void end();
/************************************************************************
*概述:打印測試程序消耗時間.精確到微秒(us)
*輸入:
*無
*輸出:
*無
*返回值:
*無
*功能描述:
*打印測試程序消耗時間.主要用于測試算法,計算耗時多少.
************************************************************************/
void printWasteTime();
INT64 getWasteTime();
/************************************************************************
*概述:打印CPU時間.
*輸入:
*無
*輸出:
*無
*返回值:
*無
*功能描述:
*打印Cpu使用時間,包括用戶時間和系統(tǒng)時間及其占用比率.主要用于測試耗時較長的功能.
************************************************************************/
void printCpuTime();
private:
#if (!defined(_WIN32) &&? !defined(_WIN32_WCE))
tmsm_tStartTime;//開始時間
tmsm_tEndTime;//結(jié)束時間
clock_tm_fStartTime;//開始時間
clock_tm_fEndTime;//結(jié)束時間
longclktck;//時鐘垢乙,每秒鐘幾次
timevalm_tvStartTime;//開始時間
timevalm_tvEndTime;//結(jié)束時間
#else
LARGE_INTEGERm_Performancefrequency;
unsigned __int64m_startTime;
unsigned __int64m_endTime;
#endif //(!defined(_WIN32) &&? !defined(_WIN32_WCE))
};
#endif //_PERFORMANCE_TEST_
使用:
PerformanceTest performanceTest;
performanceTest.begin();
performanceTest.end();
int wasteTime = (int)(performanceTest.getWasteTime()/1000);


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恩溅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子撼唾,更是在濱河造成了極大的恐慌输涕,老刑警劉巖音婶,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異莱坎,居然都是意外死亡衣式,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門檐什,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碴卧,“玉大人,你說我怎么就攤上這事厢汹∶睿” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵烫葬,是天一觀的道長界弧。 經(jīng)常有香客問我,道長搭综,這世上最難降的妖魔是什么垢箕? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮兑巾,結(jié)果婚禮上条获,老公的妹妹穿的比我還像新娘。我一直安慰自己蒋歌,他們只是感情好帅掘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堂油,像睡著了一般修档。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上府框,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天吱窝,我揣著相機(jī)與錄音,去河邊找鬼迫靖。 笑死院峡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的系宜。 我是一名探鬼主播照激,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盹牧!你這毒婦竟也來了实抡?” 一聲冷哼從身側(cè)響起欠母,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吆寨,沒想到半個月后赏淌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啄清,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年六水,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辣卒。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡掷贾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荣茫,到底是詐尸還是另有隱情想帅,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布啡莉,位于F島的核電站港准,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咧欣。R本人自食惡果不足惜浅缸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望魄咕。 院中可真熱鬧衩椒,春花似錦、人聲如沸哮兰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喝滞。三九已至朝聋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囤躁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工荔睹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狸演,地道東北人。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓僻他,卻偏偏與公主長得像宵距,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吨拗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350