写一个小程序来统计函数调用时间,简单明了直接看代码,有三个文件,FunTimer.h , FunTimer.cpp ,FunTimerMan.cpp 分别如下:
?
FunTimer.h文件
?
#ifndef _FUNTIMER_H
#define _FUNTIMER_H
#include
#include
#include
using namespace std; class FunTimer { public: FunTimer(); FunTimer(string funName); ~FunTimer(); private: string funName; timeva l _start; timeva l _end; }; /**方法一 #include
#include
#include
using namespace std; class FunTimer { public: FunTimer(); FunTimer(string funName); ~FunTimer(); private: string funName; clock_t _start; clock_t _end; }; */ #endif
?
?
FunTimer.cpp文件
?
#include "FunTimer.h"
FunTimer::FunTimer()
{
gettimeofday(&_start,NULL);
}
FunTimer::FunTimer(string funName)
{
this->funName=funName;
gettimeofday(&_start,NULL);
}
FunTimer::~FunTimer()
{
gettimeofday(&_end,NULL);
float timeuse = 1000000 * (_end.tv_sec - _start.tv_sec) + (_end.tv_usec - _start.tv_usec);
timeuse /= 1000000;
cout<
funName<<":"<
funName=funName; _start=clock(); } FunTimer::~FunTimer() { _end=clock(); cout<
funName<< (double)(_end - _start)/CLOCKS_PER_SEC <
FunTimerMain.cpp文件 ,用于测试
?
?
#include
#include "FunTimer.h"
using namespace std;
void testPrintFun()
{
FunTimer mFunTimer(__FUNCTION__);
for(int i=0;i<1000;i++)
{
cout<<" ";
}
}
void testPrintFun2()
{
FunTimer mFunTimer(__FUNCTION__);
for(int i=0;i<2000;i++)
{
cout<<" ";
}
}
int main(int argc, char* argv[])
{
FunTimer mFunTimer(__FUNCTION__);
testPrintFun();
testPrintFun2();
/**
clock_t start = clock();
testPrintFun();
clock_t end = clock();
cout<
?
测试方法:在函数的第一句加上FunTimer mFunTimer(__FUNCTION__); 即可
编译查看结果如下:


?
?
?
?