0

Linux之time命令

 2 years ago
source link: https://blog.51cto.com/u_12214037/5155332
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Linux之time命令

原创

入门小站 2022-03-28 21:32:46 ©著作权

文章标签 linux 文章分类 Linux 系统/运维 阅读数259

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

time [参数]

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

统计ls执行的时间

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

> time ls
real    0m0.001s
user    0m0.000s
sys     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选项后的参数

参数 描述

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

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

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

原文链接: https://rumenz.com/rumenbiji/linux-time.html
微信公众号:入门小站

  • 回复【1001】获取 linux常用命令速查手册
  • 回复【10010】获取 阿里云ECS运维Linux系统诊断
  • 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
  • 回复【10013】获取 shell简明教程

Linux之time命令_linux

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK