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

相关推荐

  • who

    文章目录who概要主要用途选项参数返回值例子注意 who 显示当前所有登陆用户的信息。 概要 who [OPTION]… [file] [am i] 主要用途 当没有给出非选项…

    入门教程 2024年 1月 3日
  • 上手编写-柿饼UI“环境检测仪”代码

    文章目录前言第一周:熟悉语法,产品框架第二周:设计UI界面第三周:设计界面,代码实现第四周:测试验证 前言 首先,感谢RTT的这次体验机会,此代码参考了Factory_Demo 先…

    入门教程 2021年 3月 31日
  • lsb_release

    lsb_release 显示发行版本信息 补充说明 LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用…

    入门教程 2023年 12月 19日
  • nologin

    文章目录nologin补充说明语法实例 nologin 拒绝用户登录系统 补充说明 nologin命令 可以实现礼貌地拒绝用户登录系统,同时给出信息。如果尝试以这类用户登录,就在l…

    入门教程 2024年 1月 10日
  • Mutex

    文章目录MutexMutex含有竞态条件的程序使用 Mutex使用信道处理竞态条件Mutex vs 信道 Mutex 上一节:第二十四篇 Select下一节:第二十六篇 结构体取代…

    2023年 12月 5日
  • Git 创建仓库

    本章节我们将为大家介绍如何创建一个 Git 仓库。 你可以使用一个已经存在的目录作为 Git 仓库。 Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多…

    2024年 4月 30日
  • lpadmin

    文章目录lpadmin补充说明语法选项参数 lpadmin 配置CUPS套件中的打印机和类 补充说明 lpadmin命令 用于配置CUPS套件中的打印机和类,也被用来设置打印服务器…

    入门教程 2023年 12月 19日
  • touch

    文章目录touch补充说明语法选项参数实例 touch 创建新的空文件 补充说明 touch命令 有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的…

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

    文章目录fsck补充说明语法选项参数实例 fsck fsck(英文全拼:file system check)命令检查并且试图修复文件系统中的错误 补充说明 fsck命令 被用于检查…

    入门教程 2023年 12月 14日
  • iOS SQLite数据库

    文章目录简介实例步骤输出 简介 在IOS中使用Sqlite来处理数据。如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作。 实例步骤 1、创建一个简单的View …

    2023年 4月 1日

发表回复

登录后才能评论
Translate »