タイトル通りですが、MSYS2やCygwinで、SHELLを /usr/bin/zsh にしていると、
なぜかやたら起動が遅い(数秒は待たされる)ので、いかがしたものかと思って悩んでいました。
調べてみると、forkが遅いとか、ドメインに参加している場合に遅いなど、様々でてきましたが、どれも違いそう…。
よくよく調査すると、SHELL 変数を設定せずに、bash で起動すると普通に早いことがわかりました。
一瞬で起動するし、その後zsh 起動しても、こちらも一瞬で起動します。
一旦、bash で起動して それから zsh で起動した場合のほうが、コマンド入力時間を加味しても、直接 zsh 起動する場合より早い…という状態でした。これは、 zsh を直接起動した場合は、どこかうまくいかない起動シーケンスがあるのでしょう…と推測しました。
ワークアラウンドな対処になりますが、SHELL変数を指定せず、デフォルト(bash)で起動させて、.bashrc の最後で、
exec zsh
と書くことにしました。すると、サクッと起動するようになりました。
何が違うんだろう…?
コメント