写点什么

Linux 之 time 命令

用户头像
入门小站
关注
发布于: 53 分钟前

统计给定命令所花费的总时间,time 命令 用于统计给定命令所花费的总时间。

命令语法

time [参数]

命令参数

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

统计ls执行的时间

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


> time lsreal    0m0.001suser    0m0.000ssys     0m0.002s
复制代码


输出的信息分别显示了该命令所花费的 real 时间、user 时间和 sys 时间。


  • real 时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。

  • user 时间是指进程花费在用户模式中的 CPU 时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。

  • sys 时间是指花费在内核模式中的 CPU 时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的 CPU 时间。


核心态(Kernel Mode):在内核态,代码拥有完全的,不受任何限制的访问底层硬件的能力。可以执行任意的 CPU 指令,访问任意的内存地址。内核态通常情况下,都是为那些最底层的,由操作系统提供的,可信可靠的代码来运行的。内核态的代码崩溃将是灾难性的,它会影响到整个系统。


用户态(User Mode):在用户态,代码不具备直接访问硬件或者访问内存的能力,而必须借助操作系统提供的可靠的,底层的 APIs 来访问硬件或者内存。由于这种隔离带来的保护作用,用户态的代码崩溃(Crash),系统是可以恢复的。我们大多数的代码都是运行在用户态的。

安装第三方的time命令

shell 内建也有一个 time 命令,当运行 time 时候是调用的系统内建命令,应为系统内建的功能有限,所以需要时间其他功能需要使用 time 命令可执行二进制文件/usr/bin/time。

Centos 安装

> yum -y install time
复制代码

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

> /usr/bin/time -o out.txt ls
复制代码

使用-a 选项追加信息:

> /usr/bin/time -a -o out.txt ls
复制代码

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

> /usr/bin/time -f "time: %U" ls
复制代码


-f选项后的参数


获得执行 ps -aux 的结果和所花费的系统资源

> /usr/bin/time -v ps -aux....Command being timed: "ps -aux"User time (seconds): 0.00System time (seconds): 0.01Percent of CPU this job got: 100%Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01Average shared text size (kbytes): 0Average unshared data size (kbytes): 0Average stack size (kbytes): 0Average total size (kbytes): 0Maximum resident set size (kbytes): 1944Average resident set size (kbytes): 0Major (requiring I/O) page faults: 0Minor (reclaiming a frame) page faults: 593Voluntary context switches: 4Involuntary context switches: 7Swaps: 0File system inputs: 0File system outputs: 0Socket messages sent: 0Socket messages received: 0Signals delivered: 0Page size (bytes): 4096Exit status: 0
复制代码


原文链接:https://rumenz.com/rumenbiji/linux-time.html

微信公众号:入门小站

发布于: 53 分钟前阅读数: 2
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
Linux之time命令