linux使用time命令获取命令执行时间

转载 2012年03月30日 01:18:07
Linux下time命令可以获取到一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。 它的使用方法和前面讲过的strace类似,在待执行的命令前加上time即可。 来看一个例子程序test.c #incl

  Linux下time命令可以获取到一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。

  它的使用方法和前面讲过的strace类似,在待执行的命令前加上time即可。

  来看一个例子程序test.c

  #include

  int main()

  {

  FILE *fp = fopen("/tmp/testfile","w");

  int i=0;

  for(i=0;i<3;++i)

  {

  fprintf(fp,"%dn",i);

  }

  fclose(fp);

  return 0;

  }

  编译后用time命令来统计它的执行时间:

  [leconte@localhost test]$ time ./test

  real 0m0.020s

  user 0m0.000s

  sys 0m0.018s

  结果表明,程序实际运行时间0.020s,用户态运行时间接近0s,内核态运行时间0.018s.这是因为我们主要操作是使用文件相关的系统调用,程序大部分时间工作在内核态。

  需要注意的是,real并不等于user+sys的总和。real代表的是程序从开始到结束的全部时间,即使程序不占CPU也统计时间。而user+sys是程序占用CPU的总时间,这个时间跟系统负荷无关,因此real总是大于或者等于user+sys的。

  例如我在上述程序中加上sleep(1):

  for(i=0;i<3;++i)

  {

  sleep(1);

  fprintf(fp,"%dn",i);

  }

  用time统计结果如下:

  [leconte@localhost test]$ time ./test

  real 0m3.025s

  user 0m0.000s

  sys 0m0.019s

  由于执行了三次 sleep(1),real的时间比刚才多了3s,这3s内程序并没有占用CPU,因此user+sys并没有变化。

相关文章推荐

使用Intel编译器(5)PGO(3)评测函数或循环执行时间(Profile Function or Loop Execution Time)

(1) Profile Function or Loop Execution Time Intel编译器的除了使用profile进行PGO优化之外,也提供了对程序的函数或循环执行时间进行profil...

C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义

在完成编译原理的实验时,想比较用链表和哈希表共同执行一段程序的时间是否有差异,最开始使用函数如下: main() { clock_t start = 0; clock_t end ...

测试代码的执行时间:%time和%timeit

对于规模更大、运行时间更长的数据分析应用程序,你可能会希望测试一下各个部分或函数调用或语句的执行时间。你可能会希望了解某个复杂计算过程中到底是哪些函数占用的时间最多。幸运的是,在开发和测试代码的过程中...

linux获取进程执行时间方法

linux获取进程执行时间有两种方法可以获取,第一种是用time命令,time 进程。第二种是通过在程序中进行记录,首先利用sysconf函数获取时钟滴答数,再用times获取tms结构,详细看下面的...

使用rdtsc获取细粒度程序动态执行时间

http://blog.csdn.net/DanielCDH/article/details/5676378   前一段为了验证基于PMU的CPU Cycle Profile的精确性,做了一系...

linux下测试程序中各函数执行时间工具

http://it.010lm.com/os/LINUX/239489.html 时间都去哪了~,还没好好感受过你的速度呢,为什么修改了这么多次,你依然跑的这么慢呢?时间都去哪了~~ 好吧...

linux下的C语言计算程序执行时间

本文来自CSDN博客,转载出处:http://blog.csdn.net/hahapro/archive/2007/06/14/1653017.aspx 本文从介绍基础概念入手,探讨了在C/...
  • fox2828
  • fox2828
  • 2013年10月18日 15:48
  • 2787

Linux time --测定一个命令的资源使用情况

用途说明 time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情)。但是今天我通过查看time命令的手册页,发现它能做的不仅仅是测量运行时间,还可以测量...

为什么Linux内核无法保证动态定时器的执行时间

每每谈到Linux的软件定时器,我们都要说,内核无法保证其执行时间,一般会延迟几百毫秒。几百毫秒这个一个数,绝对不是空穴来风,万物总归有其缘由。文章主要就和大家谈谈这么一个几百毫秒,究竟是从哪里冒出来...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux使用time命令获取命令执行时间
举报原因:
原因补充:

(最多只允许输入30个字)