You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shell脚本中以微秒(usecs)为单位测量命令执行耗时?

在Shell脚本中测量命令的微秒级执行耗时

要在Shell中实现微秒级的耗时测量,核心是获取精确的时间戳并计算差值,以下是两种实用的实现方式:

方法一:基于date命令的整数运算(快速简洁)

利用date +%s%N获取秒+纳秒格式的时间戳,通过整数运算将纳秒差转换为微秒:

# 记录起始时间(秒+9位纳秒)
start_time=$(date +%s%N)

# 执行需要测量的命令
Command1
command2

# 记录结束时间
end_time=$(date +%s%N)

# 计算微秒耗时:纳秒差除以1000,整数除法自动向下取整
time_taken=$(( (end_time - start_time) / 1000 ))

# 输出结果
echo "总执行耗时:${time_taken} 微秒"

方法二:用bc实现浮点精确计算

如果需要保留小数级的微秒精度,可以借助bc工具做浮点运算:

start_time=$(date +%s%N)
Command1
command2
end_time=$(date +%s%N)

# 计算精确到小数点后3位的微秒数
time_taken=$(echo "scale=3; ($end_time - $start_time) / 1000" | bc)
echo "总执行耗时:${time_taken} 微秒"

关于time命令的补充说明

系统默认的time命令(部分Shell是内置命令)通常不直接输出微秒,但可以使用/usr/bin/time(独立可执行文件)指定输出格式,比如:

# 输出包含毫秒级精度的耗时(%E代表实际耗时)
/usr/bin/time -f "实际耗时:%E 秒" Command1

但如果需要直接获取数值型的微秒耗时用于后续脚本处理,前面的date时间戳方法会更灵活。

内容的提问来源于stack exchange,提问作者user3555115

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:05:01