乐趣区

关于linux:Linux之time命令

统计给定命令所破费的总工夫,time 命令 用于统计给定命令所破费的总工夫。

命令语法

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/…
微信公众号: 入门小站

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

退出移动版