Linux下用time命令测程序运行时间
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是文章学习者,那么本文《Linux中使用time命令统计程序运行时间》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!
Linux time命令
在 Linux 系统中,time 命令的主要功能是测量指定命令执行过程中所消耗的时间以及系统资源的使用情况。
它能够显示如 CPU 使用时间、内存占用、输入输出操作等相关信息。需要注意的是,并非所有信息都能在 Linux 中正确呈现。这主要是由于 Linux 内部资源分配机制与 time 命令默认获取方式存在差异,导致部分数据无法被读取。
语法格式
<code>time [选项] 命令 [参数]</code>
常用选项说明:
- -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:列出所有可用资源信息,采用自然语言描述,适合刚接触该命令的用户。
使用示例
<code> 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. #</code>
以上示例中,执行了 "time date" 命令(见第1行)。
系统先运行 date 命令,其输出结果如第2行所示。
第4至6行展示了时间统计信息:"real" 表示实际经过时间,"user" 是用户态CPU时间,"sys" 为内核态CPU时间。
这些时间值的显示格式统一为 MMmNN[.FFF]s。
使用以下命令:
<code>time -v ps -aux</code>
可以同时查看 ps -aux 的执行结果及其资源消耗情况,如下所示:
<code> 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</code>
好了,本文到此结束,带大家了解了《Linux下用time命令测程序运行时间》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

- 上一篇
- Win8无法进桌面?修复方法全汇总

- 下一篇
- HTMLheader标签作用及用法详解
-
- 文章 · linux | 6小时前 |
- Linux自动更新设置:yum和apt配置方法
- 356浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux下防范SQL注入技巧解析
- 444浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux性能监控工具大全推荐
- 327浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linux服务管理:systemd与init对比详解
- 410浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linuxiptables日志配置详解
- 204浏览 收藏
-
- 文章 · linux | 9小时前 |
- Linux动态IP配置:NetworkManager设置教程
- 240浏览 收藏
-
- 文章 · linux | 9小时前 |
- Linux内核模块自动加载配置全解析
- 394浏览 收藏
-
- 文章 · linux | 10小时前 |
- Linux网络诊断:tcpdump抓包分析技巧
- 175浏览 收藏
-
- 文章 · linux | 11小时前 |
- Linux日志轮转配置教程
- 442浏览 收藏
-
- 文章 · linux | 11小时前 |
- Linux权限细分与ACL配置全解析
- 159浏览 收藏
-
- 文章 · linux | 12小时前 |
- Linux备份方法与rsync增量教程
- 489浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 511次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 498次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 千音漫语
- 千音漫语,北京熠声科技倾力打造的智能声音创作助手,提供AI配音、音视频翻译、语音识别、声音克隆等强大功能,助力有声书制作、视频创作、教育培训等领域,官网:https://qianyin123.com
- 169次使用
-
- MiniWork
- MiniWork是一款智能高效的AI工具平台,专为提升工作与学习效率而设计。整合文本处理、图像生成、营销策划及运营管理等多元AI工具,提供精准智能解决方案,让复杂工作简单高效。
- 167次使用
-
- NoCode
- NoCode (nocode.cn)是领先的无代码开发平台,通过拖放、AI对话等简单操作,助您快速创建各类应用、网站与管理系统。无需编程知识,轻松实现个人生活、商业经营、企业管理多场景需求,大幅降低开发门槛,高效低成本。
- 171次使用
-
- 达医智影
- 达医智影,阿里巴巴达摩院医疗AI创新力作。全球率先利用平扫CT实现“一扫多筛”,仅一次CT扫描即可高效识别多种癌症、急症及慢病,为疾病早期发现提供智能、精准的AI影像早筛解决方案。
- 173次使用
-
- 智慧芽Eureka
- 智慧芽Eureka,专为技术创新打造的AI Agent平台。深度理解专利、研发、生物医药、材料、科创等复杂场景,通过专家级AI Agent精准执行任务,智能化工作流解放70%生产力,让您专注核心创新。
- 187次使用
-
- 命令行工具:应对Linux服务器安全挑战的利器
- 2023-10-04 501浏览
-
- 如何使用Docker进行容器的水平伸缩和负载均衡
- 2023-11-07 501浏览
-
- linux .profile的作用是什么
- 2024-04-07 501浏览
-
- 如何解决s权限位引发postfix及crontab异常
- 2024-11-21 501浏览
-
- 如何通过脚本自动化Linux上的K8S安装
- 2025-02-17 501浏览