前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux命令之time——计算命令运行时间

Linux命令之time——计算命令运行时间

作者头像
浩Coding
发布2019-07-03 10:28:43
14.4K0
发布2019-07-03 10:28:43
举报
文章被收录于专栏:浩Coding

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

实例

当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如:

代码语言:javascript
复制
[root@localhost ~]# time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text
real    0m0.009s
user    0m0.002s
sys     0m0.007s

会看到其先执行了ls命令,在程序或命令运行结束后,在最后输出了三个时间,它们分别是:

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

user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;

system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;

注:用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。

shell内建也有一个time命令,当运行time时候是调用的系统内建命令,应为系统内建的功能有限,所以需要时间其他功能需要使用time命令可执行二进制文件/usr/bin/time

使用-o选项将执行时间写入到文件中:

代码语言:javascript
复制
/usr/bin/time -o outfile.txt ls

使用-a选项追加信息:

代码语言:javascript
复制
/usr/bin/time -a -o outfile.txt ls

使用-f选项格式化时间输出:

代码语言:javascript
复制
/usr/bin/time -f "time: %U" ls

-f选项后的参数:

参数

描述

%E

real时间,显示格式为[小时:]分钟:秒

%U

user时间。

%S

sys时间。

%C

进行计时的命令名称和命令行参数。

%D

进程非共享数据区域,以KB为单位。

%x

命令退出状态。

%k

进程接收到的信号数量。

%w

进程被交换出主存的次数。

%Z

系统的页面大小,这是一个系统常量,不用系统中常量值也不同。

%P

进程所获取的CPU时间百分百,这个值等于user+system时间除以总共的运行时间。

%K

进程的平均总内存使用量(data+stack+text),单位是KB。

%w

进程主动进行上下文切换的次数,例如等待I/O操作完成。

%c

进程被迫进行上下文切换的次数(由于时间片到期)。

参考文章:

http://man.linuxde.net/time

https://blog.csdn.net/adaptiver/article/details/6596143

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档