Ohmyzsh: Chuby-Plugin ist langsam

Erstellt am 13. Feb. 2016  ·  3Kommentare  ·  Quelle: ohmyzsh/ohmyzsh

Das Entfernen des chruby-Plugins und das manuelle Hinzufügen von chruby zu meinem .zshrc verkürzte die Startzeit meines Terminals um 500 ms.

Hilfreichster Kommentar

Ich bin mit diesem Fix zufrieden, also schließe ich, danke @T0mK0!

Alle 3 Kommentare

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!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen