chezmoi のスクリプト実行機能で zcompile を試した
zsh の起動を高速化するという話になるとよく zcompile
が出てくる。
source
コマンドを上書きして zcompile
を呼び出している事例なんかもあって、それもすごいと思ったのだけど、chezmoi を使って別のアプローチが取れそうだと思ったのでやってみた。
chezmoi には、chezmoi apply
時に任意のスクリプトを実行できる機能がある。ファイル名を run_
としておけば対象となり、かつ run_after_
のようにすれば chezmoi の処理の最後に実行してくれる。.zshrc
などのファイルを chezmoi
で配置し終えた後で zcompile
するスクリプトを実行すれば、.zshrc
などの実行時に何もせずともコンパイル済みのファイルを読み込めるし、chezmoi apply
の中に組み込めばコンパイル漏れもないという寸法である。
具体的なスクリプトは以下のようになった。
パスの部分は各自の環境に合わせて変更する必要がある。自分の場合はプラグイン管理に sheldon を使っているので、そちらで管理しているプラグインも zcompile
するようにしてみた。
試してみたところ、自分の環境では zsh の起動時間はほぼ変わらなかった。もともと 10~20 ms で起動する程度までチューニングされているし、zsh-defer
での非同期読み込みも多用しているので、効果が出にくかったのかもしれない。効果がないのにわざわざ複雑にする必要もないので、結局導入は見送ったのだが、chezmoi の使い方としては面白いかなと思っている。