C/C++ 统计函数调用时间

来源:互联网 发布:淘宝禁售商品有哪些 编辑:程序博客网 时间:2024/05/18 01:45

写一个小程序来统计函数调用时间,简单明了直接看代码,有三个文件,FunTimer.h , FunTimer.cpp ,FunTimerMan.cpp 分别如下:


FunTimer.h文件

#ifndef _FUNTIMER_H#define _FUNTIMER_H#include <iostream>#include <sys/time.h>#include <string>using namespace std;class FunTimer{        public:                FunTimer();                FunTimer(string funName);                ~FunTimer();        private:                 string funName;                timeval  _start;               timeval  _end;};/**方法一#include <iostream>#include <ctime>#include <string>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<<endl;cout<<this->funName<<":"<<timeuse <<endl;}/**方法一FunTimer::FunTimer(){_start=clock();}FunTimer::FunTimer(string funName){this->funName=funName;        _start=clock();}FunTimer::~FunTimer(){_end=clock();cout<<this->funName<< (double)(_end - _start)/CLOCKS_PER_SEC <<endl;}*/

FunTimerMain.cpp文件 ,用于测试

#include <iostream>#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<<endl;    cout<<(end-start)<<endl;       */        return 0;}


测试方法:在函数的第一句加上FunTimer mFunTimer(__FUNCTION__); 即可

编译查看结果如下:







0 0
原创粉丝点击