检查Bash脚本需要多长时间运行 time命令
时间:2020-03-05 15:29:54 来源:igfitidea点击:
这是一个简单的命令,可以测量......你猜到了,时间。
但它不是时钟应用程序。
它测量运行程序或者脚本时所花费的时间。
Hyman@theitroad:~$time ./script.sh real 0m12.010s user 0m0.004s sys 0m0.006s
我将在一分钟内解释时间命令及其输出。
有几个不同版本的时间实用程序。
其中我们将看看Bash版本,因为这是我们最有可能在系统上遇到的版本。
还有一个zsh版本和gnu版本。
让我们避免混淆并验证版本。
Hyman@theitroad:~$type time time is a shell keyword
如果输出看起来像这样,那就是完美的。
这意味着我们正在使用bash。
该命令在所有迭代中执行相同的任务,因此如果我们不使用Bash,担心不是,我们仍然能够理解正在发生的事情。
但是,它可能看起来很不同。
使用时间命令
时间命令测量以下内容:
- 实时时间:经过的总时间
- 用户:用户模式下的OS处理
- SYS:内核模式下的OS处理
它可以与任何命令或者管道命令一起使用。
时间与基于文本的应用程序
让我们看看纳米的一个例子。
Nano是一个基于终端的文本编辑器。
如果我开始纳米然后通过应用程序立即退出(Ctrl + X),输出将如下所示:
time nano real 0m1.465s user 0m0.031s sys 0m0.006s
时间与GUI应用程序
这也适用于GUI应用程序。
一旦申请退出,或者如果在终端输入中断(Ctrl + C),则将返回输出。
time firefox real 0m6.784s user 0m4.962s sys 0m0.459s
传统的GNU版本
正如我之前触摸的那样,大多数Linux用户运行Bash,它基本上使用快捷方式来创建人类可读内容。
我们可以使用转义字符\
来运行完整的GNU版本。
这将绕过内置的快捷方式。
这次我将只需使用睡眠命令来创建一个虚拟作业。
数字是持续时间以秒为单位。
我们还将看到这反映在输出的实时。
请注意,由于它是一个虚拟任务,因此没有致力于它的实际资源时间。
Hyman@theitroad:~$\time sleep 3 0.00user 0.00system 0:03.00elapsed 0%CPU (0avgtext+0avgdata 1944maxresident)k 0inputs+0outputs (0major+75minor)pagefaults 0swaps
此输出更难以阅读,但它还分享了一些关于内存使用情况的信息,我们可能会发现有用。
gnu time -p =(bash)时间
我们通常使用Bash版本的输出类似于GNU时间与-p
选项运行的别名。
Hyman@theitroad:~$\time -p sleep 3 real 3.00 user 0.00 sys 0.00
正如我们所看到的那样,这为我们提供了相同的输出,好像我们使用Bash快捷方式运行它。