zsh
でpreztoを使用していますが、新しいシェルを起動するのに少し時間がかかります。 (注:構成を他の低速のシステムに移動する前に、高速なシステムで最適化しようとしています。)
time zsh -i -c exit
によるベンチマーク:
bash
。zsh
preztoなし。zsh
preztoを使用しますが、モジュールはロードされません。zsh
、prezto、およびcompletion
を除くすべての「デフォルト」モジュールがロードされています。zsh
、prezto、およびすべての「デフォルト」モジュールがロードされています。まず、zsh
の読み込みはbash
より74%遅くなります。さらに73%の速度低下(preztoと完了を除くすべてのモジュールがロードされている場合)を受け入れることはできますが、285%の速度低下(すべてのモジュールを含む)は少し大きすぎます。
これらの補完のいくつかは便利なので、これらのいくつかを選択的に無効にする方法はありますか?これについての言及を聞いたことがあります 他の場所 、ただし、これがタブ補完速度を向上させるためだけなのか、シェルの読み込みを向上させるためだけなのかはわかりません。 (完了を選択的に無効にできる場合、これにより、速度低下の原因をプロファイリングして解明することができます。)
Preztoが/usr/lib/prezto/modules/completion
からモジュールをロードしているようです。すべてを有効にして、/usr/lib/prezto/modules/completion/init.zsh
の内容を削除しました。これにより、読み込み時間が2番目に速くなりました。次に、このファイルの行を体系的に削除し始め、1行を分離して速度を低下させることができました。
unsetopt CASE_GLOB
N.B.私の特定のケースでは、速度低下は私の~/.zshrc
の重複したcompinit
が原因でした。おそらく、preztoもケースをオフにしてcompinit
を実行していたため、ロード時間が2倍に増加しました。