设为首页 加入收藏

TOP

Linux c++ 统计函数调用时间
2015-11-21 01:04:54 来源: 作者: 【 】 浏览:2
Tags:Linux 统计 函数 调用 时间

写一个小程序来统计函数调用时间,简单明了直接看代码,有三个文件,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__); 即可

编译查看结果如下:

\

\

?

?

?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ZOJ 3861 Valid Pattern Lock DFS 下一篇hdoj 4911 Inversion 树状数组+离..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: