🐙
Emacsが外部プロセスとやりとりするコマンドが遅いとおもったらshellの起動が遅いせいだった
magitを利用していたときが顕著だったのですが、Emacsの動作が重いと感じる日々過ごしていました。重い腰をあげて原因を確認したところ、shell-file-name
に設定しているshellの起動が遅いからでした。対話モードで起動しない場合が早くなるようにすることで解決できるだろうと仮説をたてました。ということで使ってないionシェルを設定してみることにしました
各Shellの起動 パフォーマンス比較
以下はいくつか設定してある上での比較ですので、ご注意ください。
$ time bash -c "echo"
real 0m0.010s
user 0m0.003s
sys 0m0.005s
$ time zsh -c "echo"
real 0m0.012s
user 0m0.003s
sys 0m0.006s
$ time ion -c "echo"
real 0m0.010s
user 0m0.003s
sys 0m0.005s
$ time fish -c "echo"
real 0m0.098s
user 0m0.028s
sys 0m0.035s
一応補足ですが、fishは対話シェルで利用してていくつか設定が読まれてしまっている状態です。
素のfishが遅いことをしめすものではありません。
今回の結果でみるとbash使ってないならbashでよさそう
Discussion