INT64GetTime_ms(void){#ifdef _MSC_VERLARGE_INTEGER m_nFreq;LARGE_INTEGER m_nTime;QueryPerformanceFrequency(&m_nFreq);QueryPerformanceCounter(&m_nTime);return m_nTime.QuadPart *1000/ m_nFreq.QuadPart;#elif defined(__GNUC__)structtimeval tv_date;gettimeofday(&tv_date,NULL);return(INT64)tv_date.tv_sec *1000+ (INT64)tv_date.tv_usec;#endif}定义三个时间参数:INT32time;INT64StartTime, EndTime;使用:StartTime = GetTime_ms();//在需要测试的代码前一行计算开始时间EndTime = GetTime_ms();//结果代码的下一行计算结束时间time = (INT32)(EndTime - StartTime);//计算测试代码的运行时间printf("运行时间 = %d ms\n", time);/////////////////////////////////////////////////////////////附:项目中使用到的一个性能测试类#ifndef _PERFORMANCE_TEST_#define _PERFORMANCE_TEST_#if (!defined(_WIN32) &&!defined(_WIN32_WCE))#include #include #include #include #include #include #include #include #else#ifdef _WIN32_WCE#else#include #endif#include #include #endif //(!defined(_WIN32) && !defined(_WIN32_WCE))#include "SNDataTypeDefine.h"/*************************************************************************概述:性能测试类.*功能说明:*用于需要进行性能测试的地方.可以对代码块进行性能测试,输出该代码段所消耗的时间以及cpu占用率等信息.*使用范例:*PerformanceTest objPerformanceTest;*objPerformanceTest.begin();//读取测试起始时间*testMethod();//在此处添加待测试的方法*objPerformanceTest.end();//读取测试结束时间*objPerformanceTest.printWasteTime();//打印测试使用时间,以us为单位*objPerformanceTest.printCpuTime();//打印Cpu使用时间,包括用户时间和系统时间及其占用比率************************************************************************/class PerformanceTest{public:PerformanceTest();~PerformanceTest();public:/*************************************************************************概述:启动测试.*输入:*无*输出:*无*返回值:*无*功能描述:*在测试程序调用前先调用该方法以记录测试启动时间.************************************************************************/void begin();/*************************************************************************概述:结束测试.*输入:*无*输出:*无*返回值:*无*功能描述:*在测试程序后调用该方法以记录测试结束时间.************************************************************************/void end();/*************************************************************************概述:打印测试程序消耗时间.精确到微秒(us)*输入:*无*输出:*无*返回值:*无*功能描述:*打印测试程序消耗时间.主要用于测试算法,计算耗时多少.************************************************************************/void printWasteTime();INT64 getWasteTime();/*************************************************************************概述:打印CPU时间.*输入:*无*输出:*无*返回值:*无*功能描述:*打印Cpu使用时间,包括用户时间和系统时间及其占用比率.主要用于测试耗时较长的功能.************************************************************************/void printCpuTime();private:#if (!defined(_WIN32) && !defined(_WIN32_WCE))tmsm_tStartTime;//开始时间tmsm_tEndTime;//结束时间clock_tm_fStartTime;//开始时间clock_tm_fEndTime;//结束时间longclktck;//时钟,每秒钟几次timevalm_tvStartTime;//开始时间timevalm_tvEndTime;//结束时间#elseLARGE_INTEGERm_Performancefrequency;unsigned __int64m_startTime;unsigned __int64m_endTime;#endif //(!defined(_WIN32) && !defined(_WIN32_WCE))};#endif //_PERFORMANCE_TEST_使用:PerformanceTest performanceTest;performanceTest.begin();performanceTest.end();int wasteTime = (int)(performanceTest.getWasteTime()/1000);