共计 1911 个字符,预计需要花费 5 分钟才能阅读完成。
统计给定命令所破费的总工夫,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/…
微信公众号: 入门小站
正文完