> 软件包与系统管理 > time

time: 测量命令执行时间和资源使用情况

time 命令输出一个摘要报告,其中包含给定命令执行所花费的时间和使用的系统资源(CPU 时间、内存等)。它对于分析程序性能和优化非常有用。

概述

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 的结果仅保存到文件中。


相同类别命令