Ohmyzsh: El complemento de chruby es lento

Creado en 13 feb. 2016  ·  3Comentarios  ·  Fuente: ohmyzsh/ohmyzsh

Eliminar el complemento de chruby y agregar chruby a mi .zshrc manualmente me quitó 500 ms del tiempo de inicio de mi terminal.

Comentario más útil

Estoy contento con esta solución, así que cierre, ¡gracias @ T0mK0!

Todos 3 comentarios

Puedo reproducir en mi máquina 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

La mayor parte de su tiempo se gasta en llamadas brew --prefix chruby , de las cuales hace hasta tres. El comando brew es un programa Ruby y no es rápido. No es algo para llamar repetidamente durante el inicio. Como mínimo, el complemento chruby debería llamar a brew --prefix chruby una vez y almacenar en caché el resultado en una variable para evitar las llamadas redundantes. Mejor aún, cambie a brew --prefix sin formato y construya la ruta a chruby en zsh con $(brew --prefix)/opt/chruby . La simple llamada brew --prefix está optimizada y toma solo alrededor de 15 mseg en un sistema rápido.

Para referencia futura, puede crear perfiles como este usted mismo para diagnosticar problemas de rendimiento:

Pega esto al principio de ti ~/.zshrc .

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

Luego ejecute zsh -lx 2>zsh-startup.log y haga exit como el primer comando en el shell resultante que se abre. Terminará con un rastro con marca de tiempo de su secuencia de inicio. Eso le ayudará a saber qué partes están tardando tanto. Puede pegarlo en una hoja de cálculo y diferenciar las marcas de tiempo en las líneas posteriores para obtener los tiempos de ejecución para que sea más fácil. O elimine cualquier contraseña o token y publíquelo como resumen si necesita ayuda para analizarlo.

Estoy contento con esta solución, así que cierre, ¡gracias @ T0mK0!

¿Fue útil esta página
0 / 5 - 0 calificaciones