Linux系统使用time计算命令执行的时间 |
您所在的位置:网站首页 › linux设置命令执行时间和日期的命令 › Linux系统使用time计算命令执行的时间 |
转自: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 |