time 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于进程与系统命令族(见进程与系统命令族)。一条命令跑多久、花在哪,它给你拆开看。
time 在命令执行完后,报告它消耗的时间与部分资源。三行核心输出 real/user/sys 是性能分析的入门读数。
一、基本用法
bash
time ls -R / # 在 ls 跑完后打印耗时
time ./build.sh输出三行:
real:墙上时钟时间(你感受到的总时长)user:进程在用户态 CPU 耗时sys:进程在内核态 CPU 耗时
二、real vs user+sys(关键)
bash
# 单核满载:real ≈ user + sys
# 多核并行:user + sys 可 > real(多核同时算)
# IO 等待多:real ≫ user + sys(时间花在等磁盘/网络)这条关系是判断"瓶颈在哪"的第一直觉:
real远大于user+sys→ 大量时间在等 IO/睡眠(IO 密集型)user+sys接近real且很高 → CPU 真在算(计算密集型)user+sys远大于real→ 多核并行加速
三、shell 内建 time vs /usr/bin/time
bash
time -v cmd # 多数 shell 内建 time 不支持 -v
/usr/bin/time -v cmd # 外部 time,支持 -v 详细(内存、缺页、上下文切换等)bash/zsh 自带内建
time,功能简单位;外部/usr/bin/time(可能需安装time包)支持-v打印超详细资源统计(最大驻留内存、缺页、上下文切换次数等)。想看深一点用外部版。
四、实战:对比优化前后
bash
time make # 优化前
# ...改代码...
time make # 优化后,对比 real 是否下降快速验证"我的优化有没有用":前后各
time一次,看real变化。比上 profiling 工具轻量,适合粗粒度对比。
相关命令
一句话总结
time = 测命令耗时:输出 real(墙上时钟)/user(用户态CPU)/sys(内核态CPU);real≫user+sys 说明在等 IO、user+sys≈real 是 CPU 密集、user+sys>real 是多核并行;shell 内建 time 简单位,/usr/bin/time -v 给详细资源统计(内存/缺页/上下文切换);适合优化前后粗粒度对比。