linux 统计 程序 运行时间

测试 代码运行时间

linux 中的 <sys/time.h> 中 有个函数可以获取当前时间,精确到 微秒
---->  gettimeofday()


 1 #include <sys/time.h>
      // int gettimeofday(struct timeval *tv, struct timezone *tz);
2 /*********************************************
3 * struct timeval
4 * {
5 * time_t tv_sec; // seconds
6 * suseconds_t tv_usec; // microseconds:微秒 10^(-6)s, 这里的 tv_sec 用的是 微秒
7 * // millisecond :毫秒 10^(-3)s
8 * }
9 **********************************************
10 * struct timezone
11 * {
12 * int tz_minuteswest; // minutes west of Greenwich
13 * int tz_dsttime; // type of DST correction
14 * }
15 **********************************************/

使用时,定义两个 struct timeval  变量(通常
gettimeofday() 的第二个参数 设为 NULL),分别保存 代码测试 前后的时刻,最后相减,即可获取 代码运行时间
(可转换为自己需要的时间)。


 1 #include <stdio.h>
2 #include <sys/time.h> // for gettimeofday()
3 #include <string.h> // for memset()
4
5 int main()
6 {
7 int i = 10000000;
8 struct timeval start, end; // define 2 struct timeval variables
9
10 //-------------------------
11 gettimeofday(&start, NULL); // get the beginning time
12 //-------------------------
13
14 // test code
15 while(i)
16 {
17 i--;
18 }
19
20 //-------------------------
21 gettimeofday(&end, NULL); // get the end time
22 //-------------------------
23
24 long long total_time = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); // get the run time by microsecond
25 printf("total time is %lld us\n", total_time);
26 total_time /= 1000; // get the run time by millisecond
27 printf("total time is %lld ms\n", total_time);
28 }

测试结果:(CentOS 6.5, gcc 4.4.7)
total time is 49658 us
total time is 49 ms

linux 统计 程序 运行时间,布布扣,bubuko.com

时间: 2024-10-13 06:53:18

linux 统计 程序 运行时间的相关文章

linux下程序运行时间

如何计算程序运行时间,呵呵,一大堆复杂的程序, 先来个简单的,qsort算法,数据吗?随机产生: 看见了吧,(当然,在数据量小的情况下,感觉不到差别,但是在数据量超大的情况下,就会有明显感觉了.) 60000000 vs 10000000 时间消耗有区别哦. [[email protected] ctest]# time ./33 hehe:60000000 ----------------------------------------before quick sort------------

Java统计程序运行时间

代码如下: 第一种是以毫秒为单位计算的. long startTime = System.currentTimeMillis();    //获取开始时间 doSomething();    //测试的代码段 long endTime = System.currentTimeMillis();    //获取结束时间 System.out.println("程序运行时间:" + (endTime - startTime) + "ms");    //输出程序运行时间

嵌入式linux应用程序调试方法

嵌入式linux应用程序调试方法 四 内存工具 17 4.1 MEMWATCH 17 4.2 YAMD 22 4.3 Electric Fence 24 五 C/C++代码覆盖.性能profiling工具 24 5.1 用gcov来测试代码覆盖率 25 5.2 使用gprof来优化你的C/C++程序 35 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来跟踪稀奇古怪的内存错误问题.应用程序在有的开发工作站上能运行,但在新的产品工作站上,这个应用

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

Linux从程序到进程

Linux从程序到进程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机如何执行进程呢?这是计算机运行的核心问题.即使已经编写好程序,但程序是死的.只有活的进程才能产出.我们已经从Linux进程基础中了解了进程.现在我们看一下从程序到进程的漫漫征程. 一段程序 下面是一个简单的C程序,假设该程序已经编译好,生成可执行文件vamei.exe. #include <stdio.h> int glob=0; /*global

Linux C++程序进行性能分析工具gprof使用入门

性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的.对于软件测试过程中发现的性能问题,如何定位有很多的方法.基本的方法可能是开发者对代码进行review,或者是使用一些工具对代码进行性能分析.常见的性能分析tuning工具有哪些呢?下面两篇文章做了详细的总结: https://computing.llnl.gov/

VC++程序运行时间测试函数

0:介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间.编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数.现在我就介绍windows下的几种常用时间函数. 1:Sleep函数 使用:sleep(1000),在W

程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间

https://github.com/yaowenxu/Workplace/blob/master/timer/getrusagetimer.c 关键结构体: struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* max resident set size */ long ru_ixrss; /

1026. 程序运行时间(15)

1026. 程序运行时间(15) 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间.这个时间单位是clock tick,即"时钟打点".同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数.于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个时钟打点数C1:在f执行完成后再调用clock(),获得另一个时钟打点数C2:两次获得的时钟打