概述
time 命令测量特定程序或脚本的执行时间,并提供详细的资源使用统计信息,例如用户 CPU 时间、系统 CPU 时间和实际经过时间。这有助于识别应用程序的性能瓶颈。
主要测量指标
- 实际时间 (Real time): 命令从开始到结束的实际经过时间
- 用户 CPU 时间 (User CPU time): CPU 在用户模式下执行命令所花费的时间
- 系统 CPU 时间 (System CPU time): CPU 在内核模式下执行命令所花费的时间
主要选项
time 命令可以通过各种选项来控制输出格式或请求额外信息。
输出格式和控制
生成的命令:
请尝试组合命令。
描述:
`time` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
基本用法
time ls
测量 ls 命令的执行时间。
以 POSIX 格式输出
time -p sleep 1
以 POSIX 兼容格式输出 sleep 命令的执行时间。
将测量结果保存到文件
time -o time_output.txt -a ls -l
将 ls -l 命令的测量结果保存到 time_output.txt 文件。time 的输出会发送到标准错误,因此需要使用 2>。
以自定义格式输出
time -f "Real: %e User: %U System: %S" sleep 1.5
以特定格式输出实际时间、用户 CPU 时间和系统 CPU 时间。
提示与注意事项
使用 time 命令时需要注意的事项和额外提示。
Shell 内建 time 和外部 time 命令
bash 或 zsh 等 Shell 具有自己的 time 内建命令。它通常只输出 real、user 和 sys 三个值,功能比外部 time 命令 (/usr/bin/time) 受限。如果需要更详细的信息,应显式调用外部 time 命令。
显式使用外部 time 命令
\time sleep 1
/usr/bin/time sleep 1
要使用外部 time 命令而不是 Shell 内建的 time 命令,请在前面加上反斜杠 (\time) 或指定完整路径。
测量精度
- 非常短的命令(毫秒级)可能存在较大的测量误差。
- 测量结果可能因系统当前负载状态而异,因此为了准确测量,建议重复多次并查看平均值。
输出重定向
time 命令的输出会发送到标准错误 (stderr)。因此,要将 time 的测量结果重定向到文件,需要使用 2> 或 2>>。例如,`time ls 2> time_result.txt` 会将 ls 的输出显示在屏幕上,并将 time 的结果仅保存到文件中。