前言

良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较。但要精确测量程序的运行时间并不容易,因为进程切换、中断、共享的多用户、网络流量、高速缓存访问及转移预测等因素都会对程序计时产生影响。

下面看看小编为大家整理几个计时方法

方法一:

如果是想统计某个程序的运行时间,那么可以使用

time ./a.out

方法二:

如果是想对某个函数或者语句进行计时,那么有别的方法。比如说,gettimeofday函数。直接贴示例代码:

#include

void f()

{

//...

}

int main()

{

struct timeval t1, t2;

gettimeofday(&t1, NULL);

f();

gettimeofday(&t2, NULL);

//那么函数f运行所花的时间为

//deltaT = (t2.tv_sec-t1.tv_sec) * 1000000 + t2.tv_usec-t1.tv_usec 微秒

return 0;

}

gettimeofday只能精确到微秒,并且它受系统时钟的影响(它的原理就是通过读取系统时钟,因此当计时的这段时间里有其他程序修改了系统时钟,那么结果将不准确)。

如果想精确到纳秒呢?继续往下看:

方法三:

#include

void f()

{

//...

}

int main()

{

timespec t1, t2;

clock_gettime(CLOCK_MONOTONIC, &t1);

f();

clock_gettime(CLOCK_MONOTONIC, &t2);

//那么f所花时间为

//deltaT = (t2.tv_sec - t1.tv_sec) * 10^9 + t2.tv_nsec - t1.tv_nsec 纳秒

return 0;

}

这里说的都是wall clock,如果想获得cpu执行时间,以及了解clock_gettime参数的解释和可能的取值,可以man一下。

总结

以上就是在UNIX/LINUX下C++程序计时的方法的全部内容,希望本文的内容对大家学习使用C++程序能有所帮助。如有疑问欢迎大家留言讨论。

linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法相关推荐

  1. Linux入门进阶第四天(下)——程序管理(补充内容)

    1.PID 触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置. 同一个程序 ...

  2. wordcount linux java_Java笔记---Hadoop 2.7.1下WordCount程序详解

    一.前言 在之前我们已经在 CenOS6.5 下搭建好了 Hadoop2.x 的开发环境.既然环境已经搭建好了,那么现在我们就应该来干点正事嘛!比如来一个Hadoop世界的HelloWorld,也就是 ...

  3. linux mount_nodev函数,mount()函数 Unix/Linux

    mount, umount -装载和卸载文件系统 内容简介 #include int mount(const char *source, const char *target, const char ...

  4. 通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题

    在Vista/Win7/Win8下,有一个系统兼容性助手功能,使得程序在安装完成后或运行时,总是弹出应用程序兼容性助手相关的提示,很是烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定 ...

  5. 【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

    1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm ...

  6. linux子系统安装gromacs,科学网—Windows下GROMACS程序的编译 - 李继存的博文

    2015-12-07 22:12:05 总的来说, Windows下的GROMACS程序用于模拟意义不大, 对于长时间的模拟, 我都是放在Linux服务器上进行的. 但将Windows下的GROMAC ...

  7. linux中ftok的作用,Unix/Linux编程之ftok函数用法

    linux 中ftok函数的用法 1.函数作用: 系统建立IPC通讯(如消息队列.共享内存时)必须指定一个ID值.通常情况下,该id值通过ftok函数得到 2.函数原型: #include #incl ...

  8. Unit 3: Unix/Linux File System 3.1 Unix/Linux File System Sleuthkit and Autopsy

    >> Now let's learn and practice a well-known open source forensic analysis tool called Sleuth ...

  9. linux mysql 系统时间函数吗_linux下获取系统时间的方法

    可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值. #include     ...

最新文章

  1. 基于VLC的rtsp服务器linux平台搭建
  2. 简单的dns解析过程
  3. log_pipe日志收集分析系统介绍
  4. 面试可能遇到的问题总结【二】
  5. 计算机音乐刚好遇见你乐谱,刚好遇见你曲谱_刚好遇见你乐谱
  6. [Leedcode][JAVA][第460题][LFU]
  7. WF4.0:NativeActivity中的错误处理
  8. 现代软件工程讲义 8 软件的血型
  9. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
  10. 帮助朋友干活,平生第一次收到月饼
  11. linux如何删除镜像文件,linux 删除文件,小编教你linux如何删除文件
  12. 【知识蒸馏】让LSTM重返巅峰!
  13. Flexsim国外视频教程
  14. 继暗影机器人跑路,守护者群管作者也宣布退网
  15. idea企业破解版安装
  16. Filter过滤器的作用
  17. java lowpoly低多边形风格图片生成
  18. 微信域名防拦截的最新方案,域名防举报投诉原理
  19. c语言 signal作用,C语言中的signal函数
  20. 如何在Pycharm中安装 pygame?

热门文章

  1. 多层神经网络Java代码800行
  2. 计算神经网络隐藏层节点数极小值
  3. 深度学习DL蒙特卡洛法平衡态分子动力学模拟并计算苯酚键值
  4. 66319d电源使用说明书_海尔洗衣机怎么用 海尔洗衣机使用说明【详细介绍】
  5. 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第8章-二阶连续时间多智能体系统加权一致性
  6. 0.0 环境搭建 - PyTorch学习笔记
  7. STM32 基础系列教程 36 - Lwip_dns
  8. DFT - Introduction to Test Models
  9. 十三、linux编程中目录IO常用编程函数
  10. C++继承机制下的构造函数