C++高精度性能測试函数
在实际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++高精度性能測试函数的更多相关文章
- 系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式
PS:以下是性能測试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高, ...
- Linux 性能測试工具
Linux 性能測试工具 linux performance 查看系统配置 查看CPU信息 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64- ...
- PHP归档phar性能測试
PHP自从5.3后新增PHAR归档,Phar 归档的概念来自 Java™ 技术的 JAR 归档,它同意使用单个文件打包应用程序.这个文件里包括运行应用程序所需的全部东西.该文件不同于单个可运行文件,后 ...
- Redis源代码分析(十三)--- redis-benchmark性能測试
今天讲的这个是用来给redis数据库做性能測试的,说到性能測试,感觉这必定是高大上的操作了.redis性能測试.測的究竟是哪方面的性能,怎样測试,通过什么指标反映此次測试的性能好坏呢.以下我通过源代码 ...
- Android性能測试 一些适用于Android Studio的代码审查和性能測试工具
导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,因为QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...
- C++调用Lua的性能測试
游戏服务器经典的架构就是C++和Lua的结合,C++开发主体框架.Lua实现一些复杂的逻辑.我们都知道Lua是一种很快的语言.可是究竟有多块.我们測试下看看. C++调用Lua的性能測试.发现不正确的 ...
- JNI/NDK开发指南(九)——JNI调用性能測试及优化
转载请注明出处:http://blog.csdn.net/xyang81/article/details/44279725 在前面几章我们学习到了.在Java中声明一个native方法,然后生成本地接 ...
- mongodb3.0 性能測试报告 一
mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver 共6台 cpu: 单颗8核 ...
- Window平台搭建Redis分布式缓存集群 (一)server搭建及性能測试
百度定义:Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对很多其它.包含string(字符串).list(链表).set(集合).zset(sort ...
随机推荐
- cloudera-scm-server启动时出现Caused by: java.io.FileNotFoundException: /var/lib/cloudera-scm-server/.keystore (No such file or directory)问题解决方法(图文详解)
不多说,直接上干货! 问题详情 查看/var/log/cloudera-scm-server.log的启动日志 问题来源 我在用cloudermanager安装好之后,然后,在对如下. 配置kerbe ...
- cocos2d-js 添加广告
http://www.cocoachina.com/bbs/read.php?tid=225655
- PHP 在线 编辑 解析
http://www.w3schools.com/php/default.asp http://www.w3schools.com/php/showphp.asp?filename=demo_s ...
- 6.11---multipartfile在哪个jar包下---6.11---uuid---swagger上传图片包错去掉注解响应体
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupl ...
- CSS——ul(demo)
1.ul本身是块级元素,在实际运用中,我们不设定宽高的话,它的宽就是父元素的宽,它的高就是内容撑起来的高度. 2.在局部布局的时候,我们可以不用设定ul的宽度和高度,直接使用margin来巧妙布局. ...
- JS——动态添加事件和移除事件(有待补充...)
动态的添加事件:利用 attachEvent 和 addEventListener IE 支持 attachEvent: obj.attachEvent("onclick", Fo ...
- IE bug集锦
ie8 iframe 不显示 问题描述: IE8的非兼容模式下(兼容模式是ie7,不存在),iframe会不显示: 可以通过Ctrl+A全选或者是调整窗口大小显示出来. 解决办法: 这是由于要显示的i ...
- VS2013支持多字节
使用插件 下载地址:https://www.microsoft.com/zh-cn/search/DownloadResults.aspx?rf=sp&q=mbcs
- Neo4j图数据库从入门到精通
目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...
- CentOS安装Docker-ce并配置国内镜像
前提条件 1.系统.内核 CentOS7 要求64位系统.内核版本3.10以上 CentOS6 要求版本在6.5以上,系统64位.内核版本2.6.32-431以上 查看内核版本号 uname -r # ...