Das Entfernen des chruby-Plugins und das manuelle Hinzufügen von chruby zu meinem .zshrc
verkürzte die Startzeit meines Terminals um 500 ms.
Ich kann auf meinem OS X 10.9.5-Rechner reproduzieren.
+ 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
Die meiste Zeit wird mit brew --prefix chruby
-Anrufen verbracht, von denen es bis zu drei macht. Der Befehl brew
ist ein Ruby-Programm und nicht schnell. Nicht etwas, das während des Starts wiederholt aufgerufen werden muss. Zumindest sollte das Plugin $# chruby
brew --prefix chruby
aufrufen und das Ergebnis in einer Variablen zwischenspeichern, um redundante Aufrufe zu vermeiden. Besser noch, wechseln Sie zur einfachen Verwendung brew --prefix
und erstellen Sie den Pfad zu chruby in zsh mit $(brew --prefix)/opt/chruby
. Der einfache brew --prefix
-Aufruf ist optimiert und dauert auf einem schnellen System nur etwa 15 ms.
Als zukünftige Referenz können Sie selbst eine Profilerstellung wie folgt durchführen, um Leistungsprobleme zu diagnostizieren:
Kleben Sie dies an den Anfang von Ihnen ~/.zshrc
.
# Debugging prompt with timestamp for profiling
PS4=$'+ %D{%s.%6.} %N:%i> '
Führen Sie dann zsh -lx 2>zsh-startup.log
und exit
als ersten Befehl in der sich öffnenden resultierenden Shell aus. Am Ende erhalten Sie eine zeitgestempelte Ablaufverfolgung Ihrer Startsequenz. Das hilft Ihnen zu sagen, welche Teile so lange dauern. Sie können es in eine Tabelle einfügen und die Zeitstempel in nachfolgenden Zeilen unterscheiden, um Ausführungszeiten zu erhalten, um es einfacher zu machen. Oder löschen Sie alle Passwörter oder Token daraus und posten Sie es als Zusammenfassung, wenn Sie Hilfe bei der Analyse benötigen.
Ich bin mit diesem Fix zufrieden, also schließe ich, danke @T0mK0!
Hilfreichster Kommentar
Ich bin mit diesem Fix zufrieden, also schließe ich, danke @T0mK0!