在实际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++高精度性能测试函数相关推荐

  1. linux c++ 函数效率,Linux C++程序进行性能分析工具gprof使用入门

    性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...

  2. Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章

    Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...

  3. php 合并数组 效率,PHP将两个关联数组合并函数-增高函数效率

    PHP将两个关联数组合并函数---提高函数效率 在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的 ...

  4. CentOS 7 Linux实时内核下的epoll性能分析

    CentOS 7 Linux实时内核下的epoll性能分析 rtoax 2021年3月4日 1. 问题引入 一些参考链接见文末. 1.1. 测试调试环境 非实时环境: 3.10.0-1062.el7. ...

  5. linux应用调用内核函数,Hooking linux内核函数(一):寻找完美解决方案

    前言 我们最近参与了一个Linux系统安全相关项目,需要hooking几个重要的Linux内核函数调用,例如打开文件和启动进程,并利用它来启用系统活动监控并抢先阻止可疑进程. 最后,我们发明了一种有效 ...

  6. Linux绑核效率优化

    Linux绑核效率优化 原理概述: cpu一般有多个物理核心,但在运行进程和线程时候,可以将其绑定或者指定到某一个或者多个核心上运行.这样做的好处是:一般在核数比较多的机器上,会有多个CPU共享三级缓 ...

  7. Linux系统函数之IO函数

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.标准C库IO函数工作流程 IO缓冲区的作用? 大部分硬盘都是机械硬盘,读取寻道时间 ...

  8. linux计时函数的使用

    linux计时函数的使用 linux下计时函数的使用目的是测量程序运行的时间 头文件 #include <sys/time.h> 计时函数 int gettimeofday(struct ...

  9. linux C函数之strdup函数分析【转】

    本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: [c ...

最新文章

  1. ES6之Promise
  2. springboot设置UTF-8
  3. Cisco AP base configure
  4. CSDN博客添加微信公众号图片
  5. wmic cpu get processorid获取的都一样_DJL 之 Java 玩转多维数组,就像 NumPy 一样
  6. java 获取对象的大小限制_Java - 如何获取对象大小
  7. 《深入理解OSGi:Equinox原理、应用与最佳实践》一3.2 Bundle状态及转换
  8. java collection 遍历_Java for循环对集合的遍历
  9. jar包上传maven私服出错Cannot deploy artifact from the local repository
  10. 开源办公套件LibreOffice
  11. hprose-php教程,hprose php用户手册
  12. TCP的短链接和长连接
  13. 如何在mysql验证非负数_MySQL数据库- 要求非负数
  14. 42个面向前端开发人员的很棒JavaScript 库和框架
  15. 一些牛人榜样,多看看他们写的东西
  16. 盛大资深软件工程师谈Android开发经验
  17. 玩家退坑,市场退热,盲盒经济还能坚挺多久?
  18. 使用多线程+easyexcel实现异步号码导入
  19. 【回顾】云创大数据地震事业部成立
  20. 硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)

热门文章

  1. .db怎么复制到java里_如何在MongoDB中将集合从一个数据库复制到另一个数据库
  2. mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率
  3. oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒!
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的人力资源管理系统
  5. linux malloc速度,性能 – memcpy()的速度受malloc()的不同方式的影响很大
  6. 游戏开发中常用的设计模式
  7. 如何破解linux用户帐号密码二
  8. Joomla css类后缀
  9. 第二次作业+105032014149
  10. 构造方法Constructor