Профилирование запуска оболочки ZSH - PullRequest
0 голосов
/ 20 января 2019

моя оболочка zsh имеет довольно продолжительное время запуска, и, если я удерживаю нажатой клавишу ВВОД, приглашение терминала значительно отстает.Поэтому я искал решения и опции профилирования и обнаружил эту проблему с github.Далее один комментарий предлагает выполнить следующие команды:

zsh -xv 2>&1 | ts -i "%.s" > zsh_startup.log

, за которыми следует

sort --field-separator=' ' -r -k1 zsh_startup.log> sorted.log

, что дает мне следующий вывод:

2.106722 ESC[?1hESC=ESC[?1lESC>l
1.388755 ESC[?1hESC=ESC[?1lESC>l
1.185498 ESC[?1hESC=ESC[?1lESC>exit
1.153527 ESC[?1hESC=ESC[?1lESC>ls -la
0.065941 +powerline_precmd:1> PS1=$'%{\C-[[38;5;15m%}%{\C-[[48;5;31m%} ~ %{\C-[[48;5;237m%}%{\C-[[38;5;31m%}%{\C-[[38;5;250m%}%{\C-[[48;5;237m%} Private %{\C-[[48;5;237m%}%{\C-[[38;5;244m%}%{\C-[[38;5;254m%}%{\C-[[48;5;237m%} tmp %{\C-[[48;5;238m%}%{\C-[[38;5;237m%}%{\C-[[38;5;39m%}%{\C-[[48;5;238m%} 1 %{\C-[[48;5;236m%}%{\C-[[38;5;238m%}%{\C-[[38;5;15m%}%{\C-[[48;5;236m%} %# %{\C-[[0m%}%{\C-[[38;5;236m%}%{\C-[[0m%} '
0.052396 +powerline_precmd:1> PS1=$'%{\C-[[38;5;15m%}%{\C-[[48;5;31m%} ~ %{\C-[[48;5;237m%}%{\C-[[38;5;31m%}%{\C-[[38;5;250m%}%{\C-[[48;5;237m%} Private %{\C-[[48;5;237m%}%{\C-[[38;5;244m%}%{\C-[[38;5;254m%}%{\C-[[48;5;237m%} tmp %{\C-[[48;5;238m%}%{\C-[[38;5;237m%}%{\C-[[38;5;39m%}%{\C-[[48;5;238m%} 1 %{\C-[[48;5;236m%}%{\C-[[38;5;238m%}%{\C-[[38;5;15m%}%{\C-[[48;5;236m%} %# %{\C-[[0m%}%{\C-[[38;5;236m%}%{\C-[[0m%} '
...

Похоже, что первые четыре команды (или что бы то ни было в строках) занимают большую часть времени.Я с трудом разбираюсь в выходных данных и хотел бы получить руководство по интерпретации первых строк - нет необходимости решать основную проблему медленной оболочки :), только интерпретация первых четырех строк.

Сам файл намного длиннее, и я только что включил первые несколько строк.

Примечания:

  • Я использую oh-my-zsh со следующими плагинами

    plugins = (z git kubectl zsh-подсветка синтаксиса zsh-autosuggestions)

  • Я настроил l в качестве псевдонима для l -la в моем .zshrc
  • это то, что происходит, когда я продолжаю нажимать клавишу ввода: (когда между подсказками нет пробелов, я снова отпустил клавишу ввода)

enter image description here

...