linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法
前言
良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较。但要精确测量程序的运行时间并不容易,因为进程切换、中断、共享的多用户、网络流量、高速缓存访问及转移预测等因素都会对程序计时产生影响。
下面看看小编为大家整理几个计时方法
方法一:
如果是想统计某个程序的运行时间,那么可以使用
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++程序计时的方法相关推荐
- Linux入门进阶第四天(下)——程序管理(补充内容)
1.PID 触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置. 同一个程序 ...
- wordcount linux java_Java笔记---Hadoop 2.7.1下WordCount程序详解
一.前言 在之前我们已经在 CenOS6.5 下搭建好了 Hadoop2.x 的开发环境.既然环境已经搭建好了,那么现在我们就应该来干点正事嘛!比如来一个Hadoop世界的HelloWorld,也就是 ...
- linux mount_nodev函数,mount()函数 Unix/Linux
mount, umount -装载和卸载文件系统 内容简介 #include int mount(const char *source, const char *target, const char ...
- 通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题
在Vista/Win7/Win8下,有一个系统兼容性助手功能,使得程序在安装完成后或运行时,总是弹出应用程序兼容性助手相关的提示,很是烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定 ...
- 【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm ...
- linux子系统安装gromacs,科学网—Windows下GROMACS程序的编译 - 李继存的博文
2015-12-07 22:12:05 总的来说, Windows下的GROMACS程序用于模拟意义不大, 对于长时间的模拟, 我都是放在Linux服务器上进行的. 但将Windows下的GROMAC ...
- linux中ftok的作用,Unix/Linux编程之ftok函数用法
linux 中ftok函数的用法 1.函数作用: 系统建立IPC通讯(如消息队列.共享内存时)必须指定一个ID值.通常情况下,该id值通过ftok函数得到 2.函数原型: #include #incl ...
- 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 ...
- linux mysql 系统时间函数吗_linux下获取系统时间的方法
可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值. #include ...
最新文章
- 基于VLC的rtsp服务器linux平台搭建
- 简单的dns解析过程
- log_pipe日志收集分析系统介绍
- 面试可能遇到的问题总结【二】
- 计算机音乐刚好遇见你乐谱,刚好遇见你曲谱_刚好遇见你乐谱
- [Leedcode][JAVA][第460题][LFU]
- WF4.0:NativeActivity中的错误处理
- 现代软件工程讲义 8 软件的血型
- accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
- 帮助朋友干活,平生第一次收到月饼
- linux如何删除镜像文件,linux 删除文件,小编教你linux如何删除文件
- 【知识蒸馏】让LSTM重返巅峰!
- Flexsim国外视频教程
- 继暗影机器人跑路,守护者群管作者也宣布退网
- idea企业破解版安装
- Filter过滤器的作用
- java lowpoly低多边形风格图片生成
- 微信域名防拦截的最新方案,域名防举报投诉原理
- c语言 signal作用,C语言中的signal函数
- 如何在Pycharm中安装 pygame?
热门文章
- 多层神经网络Java代码800行
- 计算神经网络隐藏层节点数极小值
- 深度学习DL蒙特卡洛法平衡态分子动力学模拟并计算苯酚键值
- 66319d电源使用说明书_海尔洗衣机怎么用 海尔洗衣机使用说明【详细介绍】
- 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第8章-二阶连续时间多智能体系统加权一致性
- 0.0 环境搭建 - PyTorch学习笔记
- STM32 基础系列教程 36 - Lwip_dns
- DFT - Introduction to Test Models
- 十三、linux编程中目录IO常用编程函数
- C++继承机制下的构造函数