⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profiler.h

📁 这是一个GPS相关的程序
💻 H
字号:

#if !defined(AFX_PROFILER1_H__B9E65F37_8974_4887_809E_968156F6E347__INCLUDED_)
#define AFX_PROFILER1_H__B9E65F37_8974_4887_809E_968156F6E347__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


//avoid compile complaining for long names in stl
#pragma warning(disable:4786)


#include <string>
#include <map>
#include <windows.h>
#include <iomanip>

#define clock_t LONGLONG


using namespace std;

class CProfiler  
{
public:
	clock_t clock();
	// writes all information to sout
	void output( ostream sout );

	// returns the average execution time in ms (millisecons)
	double avgMs(string id);
	// returns the average execution time in clock ticks
	double avg(string id );

	// returns the overall execution time in ms
	double sumMs(string id);
	// returns the overall execution time in clock-ticks
	clock_t sum( string id);

	// returns the number of execution
	long cnt(string id);

	// converts clock_ticks to ms 
	double ticks2ms( double ticks );
	
	// resets all execution cnts and times to zero
	void resetAll();
	void reset(string id);

	// returns the stdDeviation of call to get the time
	double getStdDev(){ return stdError; }
	// returns the timLag of call to get the time in clock-ticks
	double getLag(){ return lag; }
	double getLagMs(){ return ticks2ms(lag); }

	// starts the timer for given id
	void start( string id );
	// stops the timer for given id, return the execution time since last start
	clock_t stop( string id );

	CProfiler();
	virtual ~CProfiler();

private:

	typedef struct{
		long cnt;
		clock_t sum;
		clock_t beginClock;
	} profileInfoT;

double lag;
double stdError;
clock_t	ticksPerSecond;

typedef map<string,profileInfoT> cntMapT;

cntMapT cntMap;
cntMapT::iterator itCnt;

};

#endif // !defined(AFX_PROFILER1_H__B9E65F37_8974_4887_809E_968156F6E347__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -