方法一、
#include<iosteam>
#include<ctime>
using namespace std;
class CTimer
{
public:
CTimer()
{
_start=clock();
}
~CTimer()
{
_end=clock();
cout<< float(_end - _start) / CLK_TCK <<endl;
}
private:
clock_t _start;
clock_t _end;
};
void main()
{
CTimer t;
//程序執行部分!
}
方法二:
//在windows下實現(毫秒級):
DWORD dwStart = GetTickCount(); //取windows啟動到現在的流逝時間(毫秒)
Run_Your_Func(...); //運行你的函數
DWORD dwUsed = GetTickCount() - dwStart; //計算該函數所消耗的時間
方法三:
這比微秒還准!依賴於你的處理器!!!
class CTimer
{
public:
CTimer()
{
QueryPerformanceFrequency(&m_Frequency);
Start();
}
void Start()
{
QueryPerformanceCounter(&m_StartCount);
}
double End()
{
LARGE_INTEGER CurrentCount;
QueryPerformanceCounter(&CurrentCount);
return double(CurrentCount.LowPart - m_StartCount.LowPart) / (double)m_Frequency.LowPart;
}
void ShowNow()
{
LARGE_INTEGER CurrentCount;
QueryPerformanceCounter(&CurrentCount);
cout<<"Timer Count is:"<<double(CurrentCount.LowPart - m_StartCount.LowPart) / (double)m_Frequency.LowPart<<endl;
}
private:
LARGE_INTEGER m_Frequency;
LARGE_INTEGER m_StartCount;
};
下面是你的程序,比如:
int a;
for ( int i = 0; i < 10000;, i++ )
a++;
你想測它的時間的話這樣寫:
CTimer t;
int a;
for ( int i = 0; i < 10000;, i++ )
a++;
cout<<"用時"<<t.end()<<"秒"<<endl;
方法四:
我寫過一個宏,專門干這個的!
#include "window.h"
#define BEGIN_RECORD\
{\
long ____temp_begin_time___;\
____temp_begin_time___=::GetTickCount();
#define END_RECORD(dtime)\
dtime=::GetTickCount()-____temp_begin_time___;\
}
用法:
long tim;
BEGIN_RECORD
被測函數;
END_RECORD(tim);//tim就是所求的時間差!