Timehelp类 运行时间计算
来源:互联网 发布:网络对战射击游戏 编辑:程序博客网 时间:2024/06/06 08:46
/*#ifdef TIMEFLAG_CLOCK_T#include <time.h>#define DECLARETIMESTATISTICS clock_t timeOneInstance_Begin,timeOneInstance_End;#define CLOCKBEGIN timeOneInstance_Begin = clock();#define CLOCKEND timeOneInstance_End = clock();#define DURTIME ((double)((timeOneInstance_End-timeOneInstance_Begin)*1.0/CLOCKS_PER_SEC))#elif defined(TIMEFLAG_GETTICKCOUNT)#include <windows.h>#define DECLARETIMESTATISTICS DWORD timeOneInstance_Begin,timeOneInstance_End;#define CLOCKBEGIN timeOneInstance_Begin = GetTickCount();#define CLOCKEND timeOneInstance_End = GetTickCount();#define DURTIME ((DWORD)(timeOneInstance_End-timeOneInstance_Begin))#elif defined(TIMEFLAG_QUERYPERFORMANCECOUNTER)#include <windows.h>#define DECLARETIMESTATISTICS LARGE_INTEGER timeOneInstance_Begin,timeOneInstance_End,timeFrequency;#define CLOCKBEGIN QueryPerformanceCounter(&timeOneInstance_Begin);#define CLOCKEND QueryPerformanceCounter(&timeOneInstance_End);QueryPerformanceFrequency(&timeFrequency);#define DURTIME ((double)((timeOneInstance_End.QuadPart-timeOneInstance_Begin.QuadPart)*1.0/timeFrequency.QuadPart))#else#error No TimeFlag Defined!#endif*/#pragma once#include <time.h>#include <windows.h>class CHelpTime{public:enum TIMEFLAG{TIMEFLAG_CLOCK_T,TIMEFLAG_GETTICKCOUNT,TIMEFLAG_QUERYPERFORMANCECOUNTER};public:CHelpTime(TIMEFLAG eTimeFlag){ m_pBeginTime = m_pEndTime = NULL;ChangeFlag(eTimeFlag);}~CHelpTime(){ReleaseMemory();}void ChangeFlag(TIMEFLAG eNewFlag){m_curFlag = eNewFlag;ReleaseMemory();switch(m_curFlag){case TIMEFLAG_CLOCK_T:m_pBeginTime = new clock_t(0);m_pEndTime = new clock_t(0);break;case TIMEFLAG_GETTICKCOUNT:m_pBeginTime = new DWORD(0);m_pEndTime = new DWORD(0);break;case TIMEFLAG_QUERYPERFORMANCECOUNTER:m_pBeginTime = new LARGE_INTEGER();m_pEndTime = new LARGE_INTEGER();break;}};void ClockBegin(){if (!CheckValid()){return;}switch(m_curFlag){case TIMEFLAG_CLOCK_T:*(clock_t *)m_pBeginTime = clock();break;case TIMEFLAG_GETTICKCOUNT:*(DWORD *)m_pBeginTime = GetTickCount();break;case TIMEFLAG_QUERYPERFORMANCECOUNTER:QueryPerformanceCounter((LARGE_INTEGER *)m_pBeginTime);break;default:break;}}void ClockEnd(){if (!CheckValid()){return;}switch(m_curFlag){case TIMEFLAG_CLOCK_T:*(clock_t *)m_pEndTime = clock();break;case TIMEFLAG_GETTICKCOUNT:*(DWORD *)m_pEndTime = GetTickCount();break;case TIMEFLAG_QUERYPERFORMANCECOUNTER:QueryPerformanceCounter((LARGE_INTEGER *)m_pEndTime);break;default:break;}}double GetTaskTime(){if (!CheckValid()){return NULL;}double dResult = 0;switch(m_curFlag){case TIMEFLAG_CLOCK_T:dResult = ((double)((*(clock_t*)m_pEndTime-*(clock_t*)m_pBeginTime)*1.0/CLOCKS_PER_SEC));break;case TIMEFLAG_GETTICKCOUNT:dResult = ((double)(*(DWORD*)m_pEndTime-*(DWORD*)m_pBeginTime));dResult /= 1000;break;case TIMEFLAG_QUERYPERFORMANCECOUNTER:LARGE_INTEGER liFreq;QueryPerformanceFrequency(&liFreq);dResult = ((double)(((*(LARGE_INTEGER *)m_pEndTime).QuadPart-(*(LARGE_INTEGER *)m_pBeginTime).QuadPart) \ *1.0/liFreq.QuadPart));break;}return dResult;}protected:bool CheckValid(){if (m_pBeginTime && m_pEndTime){return true;}return false;}void ReleaseMemory(){if (m_pBeginTime){delete m_pBeginTime;m_pBeginTime = NULL;}if (m_pEndTime){delete m_pEndTime;m_pEndTime = NULL;}}private:TIMEFLAG m_curFlag;void * m_pBeginTime;void * m_pEndTime;};
0 0
- Timehelp类 运行时间计算
- 一个计算脚本运行时间的类
- php 计算程序运行时间的类
- PHP计算程序运行时间的类
- timer类,计算脚本的运行时间
- 使用Stopwatch类计算代码运行时间
- 计算程序运行时间
- 计算程序运行时间
- 精确计算运行时间
- 程序运行时间计算
- 计算程序运行时间
- 计算程序运行时间
- 计算运行时间
- 计算程序运行时间
- php计算运行时间
- 函数运行时间计算
- 计算程序运行时间
- 计算程序运行时间
- Valid signing identity not found解决办法(原有IDP私钥丢失)
- Oracle自动归档模式下硬盘空间满了报错
- 英语学习笔记5:hard&soft skills
- uva oj 401
- Qt调用dll中的功能函数
- Timehelp类 运行时间计算
- 田径名将鲍威尔被禁赛18个月 无缘英联邦运动会
- lua读取文件
- 搜索引擎SEO排名依据是什么
- rails4 在页面view用link_to 给控制器controller传参数
- TCP/IP简要介绍
- VB.NET 美化HTML代码
- 《Thinking in Algorithm》12.详解十一种排序算法
- MEF程序设计指南八:部件生命周期(Parts Lifetime)托管