Вы можете запустить таймер в первой подозрительной точке вашего ~/.zshrc
(или в начале):
integer t0=$(date '+%s') # move this around
... maybe something suspect ...
# End of zshrc
function {
local -i t1 startup
t1=$(date '+%s')
startup=$(( t1 - t0 ))
[[ $startup -gt 1 ]] && print "Hmm, poor shell startup time: $startup"
}
unset t0
Это предупреждает меня, если когда-либо я вижу слишком медленный запуск, и я оставляю его как постоянную оболочку.
Для более сложных измерений есть zsh-модуль с именем zprof
. Это так же просто, как временно обернуть содержимое ваших ~/.zshrc
в zmodload zsh/zprof
и zprof
. Это выведет некоторые подробные таблицы профилирования, которые достаточно легко интерпретировать.
Больше информации на zshmodules(1)
manpage.
Когда я нахожу вещи, которые работают особенно медленно (rbenv init, vcs_info проверка изменений, antigen, nvm, zsh-mime-setup, проверка версии интерпретатора и т. Д.), Я добавляю SLOW
комментарии в качестве напоминаний и попробуйте найти обходные пути. Медленные стартапы могут вызвать много горя, поэтому я стараюсь избегать zsh пакетов / фреймворков, внутреннюю работу которых я не использую. compinit - самая медленная вещь, с которой я готов жить, и составляет ~ половину всего времени запуска.