Ohmyzsh: Плагин Chruby работает медленно

Созданный на 13 февр. 2016  ·  3Комментарии  ·  Источник: ohmyzsh/ohmyzsh

Удаление плагина chruby и добавление chruby в мой .zshrc вручную сократило время запуска моего терминала на 500 мс.

Самый полезный комментарий

Я доволен этим исправлением, так что закрываю, спасибо @T0mK0!

Все 3 Комментарий

Я могу воспроизвести на своей машине OS X 10.9.5.

+ 1455372625.828910 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:81> plugin=chruby
+ 1455372625.828954 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:82> [ -f /Users/janke/.oh-my-zsh-custom/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829008 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:84> [ -f /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829074 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:85> source /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh
+ 1455372625.829375 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:17> alias 'rubies=chruby'
+ 1455372625.829660 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:36> _ruby-build_installed
+ 1455372625.829715 _ruby-build_installed:1> whence ruby-build
+ 1455372625.830336 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _homebrew-installed
+ 1455372625.830387 _homebrew-installed:1> whence brew
+ 1455372625.830445 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _chruby-from-homebrew-installed
+ 1455372625.831099 _chruby-from-homebrew-installed:1> brew --prefix chruby
+ 1455372626.053828 _chruby-from-homebrew-installed:1> [ -r /usr/local/opt/chruby ']'
+ 1455372626.054501 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> brew --prefix chruby
+ 1455372626.269022 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> source /usr/local/opt/chruby/share/chruby/chruby.sh
...
+ 1455372626.271227 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> brew --prefix chruby
+ 1455372626.494185 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> source /usr/local/opt/chruby/share/chruby/auto.sh

Большая часть его времени тратится на вызовы brew --prefix chruby , из которых он выполняет до трех. Команда brew — это рубиновая программа, и она не быстрая. Не то, чтобы вызывать повторно во время запуска. По крайней мере, плагин chruby должен вызывать brew --prefix chruby один раз и кэшировать результат в переменной, чтобы избежать избыточных вызовов. А еще лучше переключитесь на использование простого brew --prefix и создайте путь к chruby в zsh с помощью $(brew --prefix)/opt/chruby . Простой вызов brew --prefix оптимизирован и занимает всего около 15 мс на быстрой системе.

Для дальнейшего использования вы можете самостоятельно выполнить профилирование, чтобы диагностировать проблемы с производительностью:

Прикрепите это в начале вы ~/.zshrc .

# Debugging prompt with timestamp for profiling
PS4=$'+ %D{%s.%6.} %N:%i> '

Затем запустите zsh -lx 2>zsh-startup.log и выполните exit в качестве первой команды в открывшейся оболочке. В итоге вы получите трассировку последовательности запуска с отметкой времени. Это поможет вам сказать, какие части занимают так много времени. Вы можете вставить его в электронную таблицу и сравнить временные метки в последующих строках, чтобы получить время выполнения, чтобы упростить задачу. Или сотрите из него все пароли или токены и опубликуйте его как суть, если вам нужна помощь в его анализе.

Я доволен этим исправлением, так что закрываю, спасибо @T0mK0!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

leongaban picture leongaban  ·  3Комментарии

dogrizz picture dogrizz  ·  3Комментарии

dariye picture dariye  ·  3Комментарии

2Dou picture 2Dou  ·  3Комментарии

nimmoadam picture nimmoadam  ·  3Комментарии