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__); 即可

编译查看结果如下:

时间: 04-11

Linux c++ 统计函数调用时间的相关文章

Qt linux下设置系统时间

想要能修改 ARM板上的系统时间,试了两种方法: 1.采用系统命令.system() 尝试了很多命令,date -s "20090807 16:02:23" :date -s 16:02:23 :但板子上的日期就是设置不成功,采用date -s 16:02:23 可以将时间设置成功.于是不得不考虑别的方法. 2.标准C库 首先感叹下,C库很强大呀! 而且我觉着C库的移植行很好.相比较采用system()命令,可能由于linux 版本的不同,好多命令可能存在差异,比如redhat 和ub

C++统计精确时间

QueryPerformanceFrequency用法   精确获取时间:   QueryPerformanceFrequency() - 基本介绍   类型:Win32API   原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);   作用:返回硬件支持的高精度计数器的频率.   返回值:非零,硬件支持高精度计数器:零,硬件不支持,读取失败.   QueryPerformanceFrequency() - 技术特点  

Linux查看系统开机时间

Linux查看系统开机时间 有时候需要查看Linux系统运行了多久时间,此时需要知道上次开机启动时间: 有时候由于断电或供电故障突然停机,需要查看Linux开机时间/重启时间:  下面总结一些查看Linux开机关机时间的方法(非常全面) 1: who 命令查看 who -b 查看最后一次系统启动的时间. who -r 查看当前系统运行时间 [[email protected] ~]# who -b system boot May 11 09:27 2: last  reboot 如下所示last

Linux文件3个时间点(access time,modify time,change time)

理解Linux文件3个时间信息(access time,modify time,change time) 在Linux中使用stat命令来查看文件的详细信息 如图所示,会出现3个类型的时间,分别是Access,Modify,Change. access time:表示最后一次访问(仅仅是访问,没有改动)文件的时间. modify time:表示最后一次修改文件的时间. change time:表示最后一次对文件属性改变的时间,包括权限,大小,属性等等. 总结: 1)当仅读取或访问文件时,acce

从汇编角度来理解linux下多层函数调用堆栈执行状态

注:在linux下开发经常使用的辅助小工具: readelf .hexdump.od.objdump.nm.telnet.nc 等,详细能够man一下. 我们用以下的C代码来研究函数调用的过程. C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int bar(int c, int d) { int e = c + d; return e; } int foo(int a, int b) { return bar(a, b); } int main(

Linux系统修改系统时间说明

Linux系统修改系统时间 1.设置时间 [[email protected] ~]# date -s "2015/11/05 15:56:00" #date命令  -s 修改时间 "2015/10/4 21:15"指定的时间 [[email protected] ~]# hwclock #将时间刷新到BIOS Fri 06 Nov 2015 12:04:36 AM CST  -0.651161 seconds 2.与time.nist.gov时间服务器同步 [[e

如何更新linux服务器的系统时间

由于服务器的时间出现错误,可采用以下方法来更新linux服务器的系统时间: 方法一: 1,首先yum 安装本地ntpdate客户端,更新ntpdate cn.pool.ntp.org时使用 [[email protected] ~]# yum install ntpdate 2,使用 ntpdate cn.pool.ntp.org进行更新. [[email protected] ~]# ntpdate cn.pool.ntp.org 15 Sep 16:46:32 ntpdate[15965]:

linux命令更改服务器时间

1. linux更改服务器时间: 权限:root用户才有权限更改服务器时间 使用date命令即可设置系统时间. 2. 查看系统时间 date 3. 设置当前系统时间为2015年5月8日19点48分0秒 date -s "2015-05-08 19:48:0"

linux 修改服务器系统时间

前言 因项目需求需要修改统一系统时间 详情配置如下: 在CentOS 7里面有一个命令timedatectl可以帮助我们修改服务器的时区. 1. 查看服务器里的时间设置 timedatectl ,它等同于 timedatectl status : 2. 了解 timedatectl 命令的各个参数: 3. 设置时间 下面看下CentOS修改服务器系统时间 linux安装完毕后,一般都是国外的世界,一点都不方便设置任务,或者导致网站获取本地的时间错乱,所以就需要把服务器的时间改为和本地时间一致,也