🐙

Emacsが外部プロセスとやりとりするコマンドが遅いとおもったらshellの起動が遅いせいだった

2022/03/18に公開

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