最近Bashを起動する速度がどんどん遅くなっているなと感じたので、Claude Codeに高速化を依頼した。
パフォーマンスの可視化
まず手始めに、Bash起動時に何に時間がかかっているのかをわかるようにしてもらった(PR)。
以下のようにBASH_PROFILE_PROFILING=1 bash -lで起動することで、以下のようにどこに時間がかかっているかが計測可能になる。
BASH_PROFILE_PROFILING=1 bash -l [profile] 1 ms (+ 1 ms) prompt/history [profile] 48 ms (+ 47 ms) brew --prefix [profile] 49 ms (+ 1 ms) .bash_local [profile] 118 ms (+ 69 ms) bash-completion [profile] 1361 ms (+1243 ms) bash-it [profile] 1401 ms (+ 40 ms) fzf [profile] 1402 ms (+ 1 ms) bash-powerline [profile] 1403 ms (+ 1 ms) tmuxinator [profile] 1404 ms (+ 1 ms) completion (git) [profile] 1410 ms (+ 6 ms) google-cloud-sdk [profile] 1505 ms (+ 95 ms) rbenv [profile] 1516 ms (+ 11 ms) JDK (java_home) [profile] 1917 ms (+ 401 ms) nvm [profile] 1947 ms (+ 30 ms) mise [profile] 1970 ms (+ 23 ms) wtp [profile] 1980 ms (+ 10 ms) direnv [profile] 1981 ms (+ 1 ms) nvm bash_completion [profile] 1982 ms (+ 1 ms) ===== TOTAL =====
高速化
とりあえず bash-it が遅すぎるのでこれを読み込まないようにした。これだけど 1243ms 速くなり、体感的にもかなり快適になった。
次に遅いのがnvm関連。ちょうどmiseに移行しようと思っていたので、移行を済ませてnvmを読み込まないようにした。これで400ms速くなった。
同様にrbenvもmiseに移行して消せるので削除。
まとめ
そんなこんなで色々削って起動時間が 1982ms -> 273ms になり爆速になりましたとさ