Ohmyzsh: o plugin chruby é lento

Criado em 13 fev. 2016  ·  3Comentários  ·  Fonte: ohmyzsh/ohmyzsh

Remover o plugin chruby e adicionar chruby ao meu .zshrc manualmente tirou 500ms do tempo de inicialização do meu terminal.

Comentários muito úteis

Estou feliz com essa correção para fechar, obrigado @T0mK0!

Todos 3 comentários

Posso reproduzir na minha 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

A maior parte do tempo está sendo gasto em chamadas brew --prefix chruby , das quais está fazendo até três. O comando brew é um programa Ruby, e não rápido. Não é algo para chamar repetidamente durante a inicialização. No mínimo, o plugin chruby deve chamar brew --prefix chruby uma vez e armazenar o resultado em uma variável para evitar chamadas redundantes. Melhor ainda, mude para usar brew --prefix simples e construa o caminho para chruby em zsh com $(brew --prefix)/opt/chruby . A chamada simples brew --prefix é otimizada e leva apenas cerca de 15 ms em um sistema rápido.

Para referência futura, você mesmo pode criar perfis como este para diagnosticar problemas de desempenho:

Cole isso no início de você ~/.zshrc .

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

Em seguida, execute zsh -lx 2>zsh-startup.log e faça exit como o primeiro comando no shell resultante que é aberto. Você terminará com um rastreamento com carimbo de data/hora de sua sequência de inicialização. Isso ajudará a dizer quais partes estão demorando tanto. Você pode colocá-lo em uma planilha e diferenciar os timestamps nas linhas subsequentes para obter tempos de execução para facilitar. Ou limpe todas as senhas ou tokens dele e publique-o como uma essência se precisar de ajuda para analisá-lo.

Estou feliz com essa correção para fechar, obrigado @T0mK0!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mrgaolei picture mrgaolei  ·  3Comentários

faxotherapy picture faxotherapy  ·  3Comentários

khipukamayuq picture khipukamayuq  ·  3Comentários

mihnor picture mihnor  ·  3Comentários

nimmoadam picture nimmoadam  ·  3Comentários