linux c++ 函数效率,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
#include
#include
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;
}
将C语言梳理一下,分布在以下10个章节中:
linux c++ 函数效率,C++高精度性能测试函数相关推荐
- linux c++ 函数效率,Linux C++程序进行性能分析工具gprof使用入门
性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...
- Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章
Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...
- php 合并数组 效率,PHP将两个关联数组合并函数-增高函数效率
PHP将两个关联数组合并函数---提高函数效率 在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的 ...
- CentOS 7 Linux实时内核下的epoll性能分析
CentOS 7 Linux实时内核下的epoll性能分析 rtoax 2021年3月4日 1. 问题引入 一些参考链接见文末. 1.1. 测试调试环境 非实时环境: 3.10.0-1062.el7. ...
- linux应用调用内核函数,Hooking linux内核函数(一):寻找完美解决方案
前言 我们最近参与了一个Linux系统安全相关项目,需要hooking几个重要的Linux内核函数调用,例如打开文件和启动进程,并利用它来启用系统活动监控并抢先阻止可疑进程. 最后,我们发明了一种有效 ...
- Linux绑核效率优化
Linux绑核效率优化 原理概述: cpu一般有多个物理核心,但在运行进程和线程时候,可以将其绑定或者指定到某一个或者多个核心上运行.这样做的好处是:一般在核数比较多的机器上,会有多个CPU共享三级缓 ...
- Linux系统函数之IO函数
技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.标准C库IO函数工作流程 IO缓冲区的作用? 大部分硬盘都是机械硬盘,读取寻道时间 ...
- linux计时函数的使用
linux计时函数的使用 linux下计时函数的使用目的是测量程序运行的时间 头文件 #include <sys/time.h> 计时函数 int gettimeofday(struct ...
- linux C函数之strdup函数分析【转】
本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: [c ...
最新文章
- ES6之Promise
- springboot设置UTF-8
- Cisco AP base configure
- CSDN博客添加微信公众号图片
- wmic cpu get processorid获取的都一样_DJL 之 Java 玩转多维数组,就像 NumPy 一样
- java 获取对象的大小限制_Java - 如何获取对象大小
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一3.2 Bundle状态及转换
- java collection 遍历_Java for循环对集合的遍历
- jar包上传maven私服出错Cannot deploy artifact from the local repository
- 开源办公套件LibreOffice
- hprose-php教程,hprose php用户手册
- TCP的短链接和长连接
- 如何在mysql验证非负数_MySQL数据库- 要求非负数
- 42个面向前端开发人员的很棒JavaScript 库和框架
- 一些牛人榜样,多看看他们写的东西
- 盛大资深软件工程师谈Android开发经验
- 玩家退坑,市场退热,盲盒经济还能坚挺多久?
- 使用多线程+easyexcel实现异步号码导入
- 【回顾】云创大数据地震事业部成立
- 硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)
热门文章
- .db怎么复制到java里_如何在MongoDB中将集合从一个数据库复制到另一个数据库
- mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率
- oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒!
- 基于JAVA+SpringMVC+Mybatis+MYSQL的人力资源管理系统
- linux malloc速度,性能 – memcpy()的速度受malloc()的不同方式的影响很大
- 游戏开发中常用的设计模式
- 如何破解linux用户帐号密码二
- Joomla css类后缀
- 第二次作业+105032014149
- 构造方法Constructor