
正文
VC中监测函数运行时间(一)—分钟,秒,毫秒
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
//myTimer.h // [10/16/2013 Duan Yihao] #pragma once #include "StdAfx.h" //////////////////////////////////////////////////////////////////////////
class myTimer
{ public:
myTimer(void);
~myTimer(void); public:
void start(void);
void end(void); void getRunTime(float &minute,float &second,float &millSecond); private: SYSTEMTIME stStar;
SYSTEMTIME stEnd; //
float m_minute;
float m_second;
float m_millSecond; }; //////////////////////////////////////////////////////////////////////////
//myTimer.cpp myTimer::myTimer(void)
{ m_minute=0.0;
m_second=0.0;
m_millSecond=0.0;
} myTimer::~myTimer(void)
{
} void myTimer::start(void)
{ GetLocalTime(&stStar);//获取算法处理前,系统时间 } void myTimer::end(void)
{ //
SYSTEMTIME st2;
GetLocalTime(&stEnd);//获取算法结束时系统时间
float tm1,tm2;
float ts1,ts2;
float tms1,tms2; tm1=stStar.wMinute;
tm2=stEnd.wMinute;//分 ts1=stStar.wSecond;
ts2=stEnd.wSecond;//秒 tms1=stStar.wMilliseconds;
tms2=stEnd.wMilliseconds;//毫秒 if (tms2<tms1)
{
tms2+=;
ts2-=;
}
if (ts2<ts1)
{
ts2+=;
tm2-=;
}
if (tm2<tm1)
{
tm2+=;
} m_minute=tm2-tm1;
m_second=ts2-ts1;
m_millSecond=tms2-tms1; //CString time;
//time.Format(_T("run time consume:%f min,%f s,%f ms"),tm2-tm1,ts2-ts1,tms2-tms1);
//AfxMessageBox(time); } void myTimer::getRunTime(float &minute,float &second,float &millSecond)
{
minute=m_minute;
second=m_second;
millSecond=m_millSecond;
} /*
//////////////////////////////////////////////////////////////////////////
//mfc下测试举例: void CtestMFCView::OnTest()
{ // TODO: 在此添加命令处理程序代码
//测试例子 //计时开始
myTimer t;
t.start(); //------------------------------------------------------------------------------
//>>>
for(int i = 0; i < 10; i++)
{
int n = i;
for(int i = 0; i < 100000; i++)
{
int n = i;
}
}
//<<<
//------------------------------------------------------------------------------ //计时结束
t.end(); //耗时显示
float m,s,ms;
t.getRunTime(m,s,ms); CString time;
time.Format(_T("run time consume:%f min, %f s, %f ms"),m,s,ms);
AfxMessageBox(time); } */





