在实际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++高精度性能測试函数的更多相关文章

  1. 系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式

    PS:以下是性能測试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高, ...

  2. Linux 性能測试工具

    Linux 性能測试工具 linux performance 查看系统配置 查看CPU信息 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64- ...

  3. PHP归档phar性能測试

    PHP自从5.3后新增PHAR归档,Phar 归档的概念来自 Java™ 技术的 JAR 归档,它同意使用单个文件打包应用程序.这个文件里包括运行应用程序所需的全部东西.该文件不同于单个可运行文件,后 ...

  4. Redis源代码分析(十三)--- redis-benchmark性能測试

    今天讲的这个是用来给redis数据库做性能測试的,说到性能測试,感觉这必定是高大上的操作了.redis性能測试.測的究竟是哪方面的性能,怎样測试,通过什么指标反映此次測试的性能好坏呢.以下我通过源代码 ...

  5. Android性能測试 一些适用于Android Studio的代码审查和性能測试工具

    导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,因为QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...

  6. C++调用Lua的性能測试

    游戏服务器经典的架构就是C++和Lua的结合,C++开发主体框架.Lua实现一些复杂的逻辑.我们都知道Lua是一种很快的语言.可是究竟有多块.我们測试下看看. C++调用Lua的性能測试.发现不正确的 ...

  7. JNI/NDK开发指南(九)——JNI调用性能測试及优化

    转载请注明出处:http://blog.csdn.net/xyang81/article/details/44279725 在前面几章我们学习到了.在Java中声明一个native方法,然后生成本地接 ...

  8. mongodb3.0 性能測试报告 一

    mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver   共6台 cpu:  单颗8核 ...

  9. Window平台搭建Redis分布式缓存集群 (一)server搭建及性能測试

    百度定义:Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对很多其它.包含string(字符串).list(链表).set(集合).zset(sort ...

随机推荐

  1. 记Spring下autowire为name时的一个现象

    当autowire为byname时,假如有一个名为“user”的component,恰巧还有另一个属性为“user”,它的set方法为setUser(User user),Spring会强行把comp ...

  2. iOS动画——UIKit动画

    iOS动画 iOS有很多动画技术,API主要分布在两个库中,一个是UIKit,另一个是CoreAnimation,先对UIKit动画做一下总结. UIKit动画 在UIKit中,很多API都可以看到a ...

  3. photoshop制作古风画

    效果图: 素材结构: 前期准备: 素材准备,我的素材包括:印章.花束.二次元妹纸,背景图片. 软件准备,用的软件是 photoshop CS6. 把二次元妹纸拖入photoshop,把她抠出来,Ctr ...

  4. java攻城师之路--复习java web之servlet

    需要掌握的知识点:1.Servlet程序编写 ----- 生命周期2.ServletAPI Request Response 3.Cookie 和 Session Servlet 用来 动态web资源 ...

  5. 3星|《刷新》:微软第三任CEO上任三年后的回顾

    刷新:重新发现商业与未来 作者是微软第三任CEO,2014年2月上任.本书英文版出版于2017年9月,全书内容大致截至于2017年年初,算是作者上任三年后的回顾. 书中作者讲了不少自己的个人经历.作者 ...

  6. SpringMVC(四)@RequestParam

    使用@RequestParam可以将URL中的请求参数,绑定到方法的入参上,并通过@RequestParam的3个参数进行配置 Modifier and Type Optional Element D ...

  7. vue编辑回显问题

    真是疯了,vue怪毛病真多 就下面这玩意儿,多选组合框,新增的时候好用的不行不行的,到了编辑的时候,要回显数据,怪毛病一堆一堆的 首先,回显的时候要传一个数组,但是这个数组里的元素得是字符串类型的,如 ...

  8. JAVA通用工具类

    1.异常验证框架 框架1:com.google.common.base.Preconditions 框架2:org.apache.commons.lang.Validate 框架3:org.apach ...

  9. OI数学知识清单

    OI常用的数学知识总结 本文持续更新…… 总结一下OI中的玄学知识 先列个单子,(from秦神 数论 模意义下的基本运算和欧拉定理 筛素数和判定素数欧几里得算法及其扩展[finish] 数论函数和莫比 ...

  10. postgresql数据库部署

    运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 一.postgresql数据库部署 1.前往postgresql安装包的目录(这里我部署的是10.5的版本) [root@web1 ...