[每日@命令]time测试执行时间

   

1.命令说明

功能及使用情况

   用于测试命令执行时间的函数。可以直接在命令行使用,也可以写在Shell脚本的最后,用来统计脚本执行的时间。

   real (实际时间):从command命令行开始执行到运行终止的消耗时间;

   user(用户态使用时间):

    sys(内核态使用时间,系统CPU时间):命令执行完成花费的系统CPU时间,即命令在核心态中执行时间的总和。

 

2.语法

   time [command]

 

2.路径

   a. time is a shell keyword

   b. /usr/bin/time

(用type -a command命令可以查看某个命令的所有类型,这个time其实有两个)

    默认使用的是shell keyword

    

3.参数

    -p or --portability 单位变成s,显示出所花的秒数,不太直观,当然,如果用在时间耗费大的情况下,p还是很合适的。

    格式显示为:

          real %e

          user %U

          sys  %s

    -v or --verbose       显示成易识别的格式

     -- version 显示版本信息

     -f format  改成指定的格式输出

格式顺序:

1.参数-p的POSIX缺省时间格式;

2.环境变量TIMEFORMAT自定义的时间格式;

3.缺省的时间格式。

time命令缺省输出的时间格式同 TIMEFORMAT=$'nrealt%3lRnusert%3lUnsyst%3lS'

 

     -o or --output=file  将结果定向到文件

      =={ time find / -name a.txt; } 2>2.txt

      ==(time find  / -name a.txt) 2>2.txt

 

4.举例说明

    a.测试date命令的执行时间

         # time date

       Thu Mar  8 01:03:31 CST 2012

       real    0m0.062s
       user    0m0.004s
       sys     0m0.000s

 

    b.使用外部命令time来看看。

         #/usr/bin/time find / -name "a.txt"

                /home/baby/a.txt
                /a.txt
                0.52user 8.70system 0:24.42elapsed 37%CPU (0avgtext+0avgdata 6672maxresident)k
                70720inputs+0outputs (1major+607minor)pagefaults 0swaps
              很乱,使用-v参数,来查看,会更直观

 

      #/usr/bin/time -v find / -name "a.txt"

        /home/baby/a.txt
       /a.txt
        Command being timed: "find / -name a.txt"
        User time (seconds): 0.24
        System time (seconds): 1.11
        Percent of CPU this job got: 63%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.15
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 6672
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 4
        Minor (reclaiming a frame) page faults: 605
        Voluntary context switches: 227
        Involuntary context switches: 47
        Swaps: 0
        File system inputs: 2272
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

    c.不删除文件

         # yes n | rm -i *.txt

    d.对于执行test提示的东西输入no

        # yes no | ./test

 

PS:

需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的

使用Find命令时,Real 远大于user+sys。这是由于在执行操作的时候,需要消耗大量的I/O操作,而磁盘I/O通常是最慢的环节,因此大部分时间find进程都在等待磁盘I/O完成。当第二次使用同样的命令时,real会减少很多,这是只于系统会将刚才操作过的一些文件缓存,而减少了磁盘I/O

(时间划分成时间片,程序在进程等待也是real时间大的原因之一)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值