如何确定〜/ Shell目录中的哪些脚本导致我的〜/ .zshrc文件需要很长时间才能被加载?

时间:2017-02-24 15:48:52

标签: performance shell zshrc

我有一个~/.zshrc文件,用于执行~/Shell目录中的所有顶级shell脚本,这些顶级脚本依次执行较低级别的脚本。例如,~/Shell/programs中的脚本(所谓的“低级脚本”)由顶级~/Shell/09-programs.sh脚本执行。我最近注意到运行~/.zshrc变得比以前慢得多,我想知道是否有任何方法来确定我的~/Shell目录中的哪个脚本(或脚本集)是导致它变得如此缓慢。知道每个脚本中导致脚本变得如此慢的精确行号也会很有帮助。如果您希望我的~/.zshrc文件和~/Shell脚本here是我们定期更新的GitHub存储库。

1 个答案:

答案 0 :(得分:2)

PS4=':[%*]:%x:%I+' zsh -x -l -i

将运行一个新的登录shell,每行执行前面都有第二个准确的时间戳,即定义它的文件名和行号。

顺便说一句,与此相当的bash看起来像是:

PS4=':[\t]:$BASH_SOURCE:$LINENO+' bash -x -l -i

...虽然我个人而言,在这种情况下我可能会使用$SECONDS而不是\t来获取自shell调用以来的整数秒数。