测命令耗时应区分实时测量与历史查询:实时用 /usr/bin/time -p,历史查执行时刻用 HISTTIMEFORMAT,二者工具和目的不同。

Linux怎么查看某个命令的执行消耗时间

直接用 time 测不准,得看你是想测「刚跑完这条命令花了多久」,还是查「历史里某次执行是什么时候、用了多久」——两者完全不是一回事,工具和方法都不同。

/usr/bin/time -p 测当前命令真实耗时

shell 内置的 time 只输出 real/user/sys 三行,且在管道、重定向或含 exec 的脚本里容易失真。真正靠谱的是 GNU 版本:

HISTTIMEFORMAT 查历史命令的执行时刻

它只记录「你敲下回车那一刻」的时间戳,不记录执行完成时间,也不记录耗时——所以它不能告诉你某次 ls 跑了多久,只能告诉你它大概几点被敲出来的。

为什么有些命令根本不出现在 history

不是所有命令都会被记录,常见漏掉原因有三个:

查不到耗时?先确认你在查什么

要是你在 history 的输出里搜索 grep "ls" 想找到某一次具体的执行,那基本就是白费功夫——同一条命令会反复出现,必须结合时间字段才能缩小范围。可要是你用 time 测出来 real 远大于 user + sys,这就说明瓶颈不在CPU,极有可能是卡在I/O、锁、网络或者调度上了,这时就该换 strace -c 或者 perf 继续深入挖掘了。

本文转载于:https://www.php.cn/faq/3024250.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。