MSYS2(Cygwin)でSHELLを/usr/bin/zshにしたら起動がやたら遅い話

タイトル通りですが、MSYS2やCygwinで、SHELLを /usr/bin/zsh にしていると、
なぜかやたら起動が遅い(数秒は待たされる)ので、いかがしたものかと思って悩んでいました。

調べてみると、forkが遅いとか、ドメインに参加している場合に遅いなど、様々でてきましたが、どれも違いそう…。

よくよく調査すると、SHELL 変数を設定せずに、bash で起動すると普通に早いことがわかりました。
一瞬で起動するし、その後zsh 起動しても、こちらも一瞬で起動します。

一旦、bash で起動して それから zsh で起動した場合のほうが、コマンド入力時間を加味しても、直接 zsh 起動する場合より早い…という状態でした。これは、 zsh を直接起動した場合は、どこかうまくいかない起動シーケンスがあるのでしょう…と推測しました。

ワークアラウンドな対処になりますが、SHELL変数を指定せず、デフォルト(bash)で起動させて、.bashrc の最後で、

と書くことにしました。すると、サクッと起動するようになりました。
何が違うんだろう…?

 

Spread the love
  •  
  •  
  •  
  •  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です