我的bash shell需要3-4秒启动,而如果我用–norc启动它立即运行。
我开始“profiling”/etc/bash.bashrc和〜/ .bashrc通过手动插入返回语句和寻求速度的改进,但它不是一个定量的过程,它是不是有效的。
如何配置我的bash脚本,看看哪些命令需要最多的时间启动?
如果你有GNU日期(或另一个可以输出纳秒的版本),在/etc/bash.bashrc的开头(或者你想在任何Bash脚本中开始跟踪)
PS4='+ $(date "+%s.%N")\011 ' exec 3>&2 2>/tmp/bashstart.$$.log set -x
加
set +x exec 2>&3 3>&-
在〜/ .bashrc结尾处(或者您希望跟踪停止的任何Bash脚本的末尾)。
您应该在/tmp/bashstart.PID.log中获取跟踪日志,该日志显示每个执行的命令的seconds.nanoseconds时间戳。一个时间到下一个时间的差异是介入步骤花费的时间量。
在缩小范围时,可以稍后移动set -x,然后提前设置x(或者选择性地包括几个感兴趣的部分)。