Linux系统使用time计算命令执行的时间

您所在的位置:网站首页 linux设置命令执行时间和日期的命令 Linux系统使用time计算命令执行的时间

Linux系统使用time计算命令执行的时间

2024-07-09 19:32| 来源: 网络整理| 查看: 265

 转自:https://www.cnblogs.com/liuzhipenglove/p/7058726.html

参考:

https://www.cnblogs.com/bittorrent/p/3761247.html

https://blog.csdn.net/wangjianno2/article/details/50452919

 

注意: 命令后面一定要有分号;

http://codingstandards.iteye.com/blog/798788    用途说明

time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情)。但是今天我通过查看time命令的手册页,发现它能做的不仅仅是测量运行时间,还可以测量内存、I/O等的使用情况,手册页上的说法是time a simple command or give resource usage,其中time一词我认为它应该是测量或测定的意思,并不单指时间。一个程序在运行时使用的系统资源通常包括CPU、Memory和I/O等,其中CPU资源的统计包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。但是简单的使用time命令并不能得到内存和I/O的统计数据,请看后文慢慢道来。

常用参数

time命令最常用的使用方式就是在其后面直接跟上命令和参数:

time []

在命令执行完成之后就会打印出CPU的使用情况:

real    0m5.064s      2.txt

好像成功了。慢,看一下对不对。  [root@web186 root]# cat 2.txt  -bash: {time: command not found

原来bash把 {time 作为一个整体来处理了,前后都加上空格试试。  [root@web186 root]# { time find . -name "mysql.sh" } 2>2.txt  > Ctrl+C

这次Bash认为命令都没有输入完成,少了分号。因为Bash认为后面的 } 是find命令的参数。  [root@web186 root]# { time find . -name "mysql.sh"; } 2>2.txt  ./work186/sms/bin/mysql.sh ./work186/sms/src/scripts/mysql.sh ./work186/sms/src/scripts1/mysql.sh ./work186/sms1/bin/mysql.sh ./work186/sms1/src/scripts/mysql.sh ./temp/sms/bin/mysql.sh ./temp/sms/src/scripts/mysql.sh [root@web186 root]# cat 2.txt  real    0m0.068s user    0m0.030s sys     0m0.040s

第一种方式的尝试成功了,总结起来就是 { time command-line; } 2>file  注意分隔符的使用。

另外一种方式就是使用子Shell的方式,如下所示:

[root@web186 root]# (time find . -name "mysql.sh") 2>2.txt  ./work186/sms/bin/mysql.sh ./work186/sms/src/scripts/mysql.sh ./work186/sms/src/scripts1/mysql.sh ./work186/sms1/bin/mysql.sh ./work186/sms1/src/scripts/mysql.sh ./temp/sms/bin/mysql.sh ./temp/sms/src/scripts/mysql.sh [root@web186 root]# cat 2.txt  real    0m0.083s user    0m0.040s sys     0m0.020s [root@web186 root]#

第二种方式的尝试也成功了,总结起来就是 (time command-line) 2>file 这里time紧贴着小括号(也可以的,命令行结束也不必带分号。当然最好还是用第一种方式,毕竟启动一个子shell是要多占些资源的。

问题思考

1. 为什么执行find命令的多次时间统计差别很大,一次实际时间需要12秒,另外几次却不足1秒?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3