程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Linux c++ 統計函數調用時間

Linux c++ 統計函數調用時間

編輯:關於C++

寫一個小程序來統計函數調用時間,簡單明了直接看代碼,有三個文件,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;
                timeval  _start;
               	timeval  _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__); 即可

編譯查看結果如下:

\

\

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved