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 :




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

linux c++性能测试函数

多线程性能测试
  • u011915028
  • u011915028
  • 2016年10月19日 10:36
  • 136

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

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

性能测试-函数性能分析篇

性能测试-函数性能分析篇-Quantify       在利用ACT(Application Center Test)进行压力测试后,如何对发现性能问题的模块进行定位,发现性能瓶颈所在,这就需要大家了...
  • cwj007
  • cwj007
  • 2004年04月12日 12:26
  • 5722

noip1996 数制转换 -提高组 (高精度+进制转换)

A1106. 数制转换 时间限制:1.0s   内存限制:256.0MB   总提交次数:587   AC次数:201   平均分:51.93 将本题分享到:            查看...
  • yuyanggo
  • yuyanggo
  • 2015年08月06日 18:15
  • 642

C++ 完全高精度模板 (hdu 4762)

#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #inc...
  • u011721440
  • u011721440
  • 2014年08月09日 14:30
  • 1581

POJ 1001 求高精度幂(高精度)

Description 对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。  现在要你解决的问题是:对一个实数R( 0.0 Input T输入包括多...
  • u012618882
  • u012618882
  • 2013年10月29日 21:50
  • 1464

C++高精度运算模板

用C++实现大数类
  • DaiHaoC83E15
  • DaiHaoC83E15
  • 2014年04月06日 17:16
  • 5455

C++高精度算法之高精度减法

高精度减法 题目描述 高精度减法 输入 两个整数a,b(第二个可能比第一个大) 输出 结果(是负数要输出负号) 样例输入 2 1 样例输出 1 说明 20%数据a,b在long ...
  • C20190413
  • C20190413
  • 2017年06月09日 18:02
  • 1095

C++ 高精度算法及N的阶乘

高精度算法
  • innounce
  • innounce
  • 2017年03月10日 22:27
  • 357

高精度的进制转换

1 #include 2 #include string.h> 3 4 char str[1000];//输入字符串 5 int start[1000],ans[1000],res[100...
  • henryzc
  • henryzc
  • 2015年03月15日 22:28
  • 332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++高精度性能测试函数
举报原因:
原因补充:

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