C++高精度性能测试函数

原创 2015年07月08日 14:44:23

       在实际software开发工作中,我们经常会测试某个module或者function的执行效率。或者是某个算法的时间复杂度(虽然时间复杂度一定程度上依赖于机器性能,但在同一台computer上,经过算法优化,可以测试其复杂度);这时候就需要精确获取时间,才可以准确的运行时间,下面的函数实现了精确计时,计时精度可以达到微秒级;可用于测试某个模块的效率!

//Purpose :this programme is designed for testing the performance of your code ,some function ect,
//it can show the time of spending on your running on it . it is  beneficial to improve your performance 
//of code
// author :Jackery_shh
// data: July 8th  2015

#include<Windows.h>
#include<iostream>
#include<tchar.h>
using namespace std;
#define  IN

#ifdef _DEBUG 
#define _Trace_Size 500
inline void FileTrace(IN LPCTSTR szFormat, ...)
{
	if (szFormat == NULL)
		return;

	TCHAR t_trace[_Trace_Size] = { _T('\0') };
	va_list vl = NULL;

	// 生成内容
	va_start(vl, szFormat);
	_vsntprintf_s(t_trace, _Trace_Size, _TRUNCATE, szFormat, vl);
	va_end(vl);
	OutputDebugString(t_trace);
}
#else
inline void FileTrace(IN LPCTSTR szFormat, ...){}
#endif

LARGE_INTEGER begin_time ,freq;

int main()
{
	LARGE_INTEGER begin_time ,freq;
	QueryPerformanceFrequency (&freq);
	QueryPerformanceCounter (&begin_time);
    //begin time 
     for (long test0=0;test0<5000000;test0++)
     {
		 test0=test0+1;
     }
	LARGE_INTEGER end_time0; 

 	QueryPerformanceCounter (&end_time0);
	//after runnin the 'for' loop statement,the time is Time0
 	double Time0 = ((double) (end_time0.QuadPart - begin_time.QuadPart)*1000.0) / (double) (freq.QuadPart);

    int test1=10000;
	while (test1)
	{
		test1--;
	}
 	LARGE_INTEGER end_time1; 
	QueryPerformanceCounter (&end_time1);
 	double Time1 = ((double) (end_time1.QuadPart - begin_time.QuadPart)*1000.0) / (double) (freq.QuadPart);
    FileTrace(_T("*********************************************************************************\n"));
	FileTrace(_T("Test result is as follow :\ntime: %I64x, %.3fms, %.3fms\n"), (ULONGLONG)0, Time0, Time1);
	FileTrace(_T("*********************************************************************************\n"));
    system("pause");
	return 0;
}
test result is :




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

一个高手对C++著作的评价

第一篇一些同学问我,如何学好C++,我没有别的办法给你们,唯一的办法就是读书,读大量的书,就可以解决。要把C++作为日常语言,而不是一种程序语言,这样就好办了。有人又要问我,那么我应该读什么书才好?没...
  • hityct1
  • hityct1
  • 2007年12月01日 09:25
  • 1410

学习OpenCV——SVM

OpenCV开发SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。用OpenCV...

粒子群优化算法(一):算法性能测试函数

Rastrigin Function数学优化问题需要一些函数测试算法性能,例如Ras函数测试粒子群优化算法。Ras函数定义:f(x⃗ )=An+∑i=1n[x2i−cos(2πxi)]f(\vec{x...

判定算法性能优劣的测试函数

  • 2009年01月02日 14:29
  • 92KB
  • 下载

c/c++测试函数的运行时间(八种方法)(转)

目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但...

NSGA-Ⅱ算法C++实现(测试函数为ZDT1)

在看C++实现之前,请先看一下NSGA-II算法概述http://www.omegaxyz.com/2017/04/14/nsga-iiintro/NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改...
  • xyisv
  • xyisv
  • 2017年06月15日 23:38
  • 111

利用C++模板,代替虚函数,实现类的静态多态性(加入性能测试部分)

http://www.cppblog.com/woaidongmao/archive/2008/05/22/50805.html 利用C++模板,代替虚函数,实现类的静态多态性(加入性能测试部分) ...

第十一章 重构和测试函数式程序

第十一章重构和测试函数式程序   本章介绍 ■重构函数式程序 ■使用不变性推理代码 ■为 F# 程序写单元测试 ■使用延迟值缓存结果   这本书的主题之一就是,函数编程理如何使解代码更...
  • hadstj
  • hadstj
  • 2015年01月04日 16:03
  • 395

C 语言之字符测试函数介绍-2015.12.31

C 语言的字符测试函数,我们知道字符根据判别方式的不同,可以分为多种类型,然而根据我们需求得不同我们往往需要对以下做出判断:是否是大写字符、是否是小写字符、是否是英文字符等等特殊的情况,当然有一种方式...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++高精度性能测试函数
举报原因:
原因补充:

(最多只允许输入30个字)