码迷,mamicode.com
首页 > 编程语言 > 详细

Linux c++ 统计函数调用时间

时间:2015-04-14 00:46:50      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:linux c++ 统计函数调用时间

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

编译查看结果如下:

技术分享

技术分享





Linux c++ 统计函数调用时间

标签:linux c++ 统计函数调用时间

原文地址:http://blog.csdn.net/zz7zz7zz/article/details/45034211

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!