time

time

统计给定命令所花费的总时间

补充说明

time 命令是用来确定一个给定的命令需要运行多长时间。它对于测试你的脚本和命令的性能很有用。

例如,如果你有两个不同的脚本在做同样的工作,你想知道哪一个表现得更好,你可以用 Linux 的时间命令来确定每个脚本的执行时间。

该指令是 shell 内指令,也是一个软件包,对于软件包的说明在这篇文档靠下的部分

语法

time <指令>

参数

指令:指定需要运行的额指令及其参数。

实例

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

$ time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text

real    0m0.009s
user    0m0.002s
sys     0m0.007s

这里的输出会因为使用的发行版本不同而导致展示的结果不同,比如:

# Bash
real 0m33.961s
user 0m0.340s
sys 0m0.940s

# Zsh
0.34s user 0.94s system 4% cpu 33.961 total

# GNU time (sh)
0.34user 0.94system 0:33.96elapsed 4%CPU (0avgtext+0avgdata 6060maxresident)k
0inputs+201456outputs (0major+315minor)pagefaults 0swaps

real 或者 total 或者 elapsed(挂钟时间)是指从调用开始到结束的时间。它是指从你按下回车键的那一刻开始,到命令完成的那一刻为止的时间。
user – 在用户模式下花费的CPU时间。
system 或 sys – 在内核模式下花费的CPU时间。

软件包

接下来的部分是关于 time 软件包提供的 /usr/bin/time 二进制可执行程序,而不是 shell 内建的 time 命令。

软件包的语法

一些 shells(例如 bash )有一个内置的 time 命令,提供类似的关于时间和可能的其他资源的使用信息。

要访问真正的命令,可能需要指定其路径名(类似于/usr/bin/time)。

time [options] command [arguments...]

软件包指令参数

-f format, –format=format
指定输出格式,可能覆盖环境变量TIME中指定的格式。
-p, –portability
使用可移植的输出格式。
-o file, –output=file
不将结果发送到stderr,而是覆盖指定的文件。
-a, –append
(与-o一起使用。)不覆盖而是附加。
-v, –verbose
对程序知道的所有信息进行非常详细的输出。
-q, –quiet
不报告异常的程序终止(当命令被信号终止时)或非零退出状态。

软件包实例

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

/usr/bin/time -o outfile.txt ls

使用-a选项追加信息:

/usr/bin/time -a -o outfile.txt ls

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

/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 进程被迫进行上下文切换的次数(由于时间片到期)。

参考资料

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/time/

(0)
AuroraAurora站点维系者
上一篇 2024年 3月 11日 下午5:40
下一篇 2024年 3月 11日 下午5:41

相关推荐

  • grep

    文章目录grep补充说明选项规则表达式grep命令常见用法grep递归搜索文件 grep 强大的文本搜索工具 补充说明 grep (global search regular ex…

    入门教程 2023年 12月 14日
  • e2fsck

    文章目录e2fsck补充说明语法选项参数实例 e2fsck 用于检查第二扩展文件系统的完整性 补充说明 e2fsck命令 用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修…

    入门教程 2023年 12月 14日
  • xlsatoms

    文章目录xlsatoms补充说明语法选项 xlsatoms 列出X服务器内部所有定义的原子成分 补充说明 xlsatoms命令 用于列出X服务器内部所有定义的原子成分,每个原子成分…

    入门教程 2024年 3月 11日
  • rsync

    文章目录rsync补充说明语法选项实例 rsync 远程数据同步工具 补充说明 rsync命令 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用…

    入门教程 2024年 3月 4日
  • tload

    文章目录tload补充说明语法选项参数实例 tload 显示系统负载状况 补充说明 tload命令 以图形化的方式输出当前系统的平均负载到指定的终端。假设不给予终端机编号,则会在执…

    入门教程 2024年 3月 11日
  • semanage

    文章目录semanage补充说明语法选项实例 semanage 默认目录的安全上下文查询与修改 补充说明 semanage命令 是用来查询与修改SELinux默认目录的安全上下文。…

    入门教程 2024年 3月 4日
  • mysqldump

    文章目录mysqldump补充说明语法选项实例问题解决 mysqldump MySQL数据库中备份工具 补充说明 mysqldump命令 是mysql数据库中备份工具,用于将MyS…

    入门教程 2024年 1月 3日
  • if else 语句

    if else 语句 上一节:第七篇 包下一节:第九篇 循环语句 这是本Golang系列教程的第8篇。 if 是一个条件语句。if 语句的语法为: if condition { }…

    2023年 12月 5日
  • Git 查看提交历史

    Git 提交历史一般常用两个命令: git log – 查看历史提交记录。 git blame – 以列表形式查看指定文件的历史修改记录。 git log …

    2024年 4月 30日
  • yes

    文章目录yes补充说明语法参数实例 yes 重复打印指定字符串 补充说明 yes命令 在命令行中输出指定的字符串,直到yes进程被杀死。不带任何参数输入yes命令默认的字符串就是y…

    入门教程 2024年 3月 11日

发表回复

登录后才能评论
Translate »