登录
首页 >  文章 >  linux

Linux下用time命令测程序运行时间

时间:2025-06-30 11:15:05 136浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是文章学习者,那么本文《Linux中使用time命令统计程序运行时间》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

linux统计命令运行时间是什么-time命令使用与实例

Linux time命令

在 Linux 系统中,time 命令的主要功能是测量指定命令执行过程中所消耗的时间以及系统资源的使用情况。

它能够显示如 CPU 使用时间、内存占用、输入输出操作等相关信息。需要注意的是,并非所有信息都能在 Linux 中正确呈现。这主要是由于 Linux 内部资源分配机制与 time 命令默认获取方式存在差异,导致部分数据无法被读取。

语法格式

time [选项] 命令 [参数]

常用选项说明

  • -o 或 --output=文件名:将统计结果输出到指定文件。若文件已存在,则原内容会被覆盖。
  • -a 或 --append:配合 -o 使用时,将结果追加写入文件末尾,而非覆盖原有内容。
  • -f 格式 或 --format=格式:自定义结果显示格式。未指定时使用系统默认格式。可通过设置环境变量 TIME 来永久更改格式模板。

time 命令可展示四大类资源信息

  • 时间相关
  • 内存使用
  • 输入输出
  • 命令信息

具体说明如下

1、时间资源

E 整个命令执行耗时,格式为:[小时]:分钟:秒。注意此值不等于实际 CPU 运行时间。

e 命令执行总时间,单位为秒。同样不是真实 CPU 时间。

S 命令在内核态运行时间,单位秒。

U 命令在用户态运行时间,单位秒。

P CPU 占用率,即(内核态+用户态)时间总和除以总执行时间得出的百分比。

2、内存资源

M 执行期间物理内存使用的最大值,单位 KB

t 物理内存平均使用量,单位 KB

K 程序占用内存总量(堆栈+数据段+代码段)平均值,单位 KB

D 独占数据区平均大小,单位 KB

p 独占堆栈区平均大小,单位 KB

X 共享代码段平均大小,单位 KB

Z 系统页面大小,单位字节。同一系统中该值固定不变

3、IO资源

F 主缺页中断次数。指某内存页已被交换到交换分区并分配给其他进程,需要从交换分区重新读取的情况。

R 次缺页中断次数。表示内存页虽被换出但尚未分配给其他进程,此时内容未改变,无需从交换分区读取。

W 被换出到交换分区的次数

c 被强制中断(如CPU时间片用完)的次数

w 自愿中断次数(如等待磁盘读写完成)

I 输入文件数量

O 输出文件数量

r 接收的Socket消息数

s 发送的Socket消息数

k 接收到的信号数量

4、命令相关信息

C 执行命令及其参数详情

x 结束状态码 (Exit Status )

-p or --portability:自动设定显示格式为:

real %e user %Usys %S,确保符合 POSIX 标准。

-v or --verbose:列出所有可用资源信息,采用自然语言描述,适合刚接触该命令的用户。

使用示例


1. # time date
2. Sun Mar 26 22:45:34 GMT-8 2006
3. 
4. real    0m0.136s
5. user    0m0.010s
6. sys     0m0.070s
7. #

以上示例中,执行了 "time date" 命令(见第1行)。

系统先运行 date 命令,其输出结果如第2行所示。

第4至6行展示了时间统计信息:"real" 表示实际经过时间,"user" 是用户态CPU时间,"sys" 为内核态CPU时间。

这些时间值的显示格式统一为 MMmNN[.FFF]s。

使用以下命令:

time -v ps -aux

可以同时查看 ps -aux 的执行结果及其资源消耗情况,如下所示:


USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
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): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
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

好了,本文到此结束,带大家了解了《Linux下用time命令测程序运行时间》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>