有时候有些特殊需求会需要计算函数时间,当然这个也容易,只要在函数前后各记录一下时间,相减就行了。
其实方法确实是这样,但是在windows平台也很多方式,下面介绍一种个人认为比较简单精准的:
class TimeCount
{
public:
TimeCount()
{
//获得计数器的时钟频率
QueryPerformanceFrequency(&begin);
mFreq = begin.QuadPart;
}
~TimeCount(){}
/*
*@fuction 开始计时
*@time 2013/11/19 14:25:32
*/
inline void Start()
{
QueryPerformanceCounter(&begin);
}
/*
*@fuction 获取到目前为止跑过的毫秒
*@time 2013/11/19 14:25:44
*/
inline unsigned int End()
{
LARGE_INTEGER end;
QueryPerformanceCounter(&end);
return (unsigned int)(1000*(double)(end.QuadPart - begin.QuadPart )/(double)mFreq);
}
private:
LARGE_INTEGER begin;
LONGLONG mFreq;
};
使用方式:
//计时器
mTimeCount.Start();
mExcuteSignal(times);
unsigned int xxx = mTimeCount.End();
xxx 就是执行时间