initchart.el が素晴しい。
解り易さと、面白さで。
load-path の通った場所に initchart.el を置いて、
init.el の先頭に下記を追加して実行すると、
起動時間を計測してくれる。
1 2 3 4 5 6 |
;; (require 'initchart) (initchart-record-execution-time-of load file) (initchart-record-execution-time-of require feature) ;; |
initchart バッファに測定結果らしきものが出て来る。
ここでうっかり、initchart バッファを削除すると、
emacs が正常終了できなくなるので要注意!
emacsが起動したら、
1 2 |
M-X initchart-visualize-init-sequence |
を実行すると、 SVG filename: と聞かれるので、
~/initchart.svg など、適当なファイル名を入力すると、
そのファイルに計測結果が出力される。
~/initchart.svg をブラウザに読ませると、
起動中にかかった時間を各関数ごとのチャートにして、
綺麗に表示してくれる。
僕のemacsの計測結果は、こんな感じ。
表にしてしまうと initchart の面白さは無くなってしまうけど…
svgで表示してくれるので、時間がかかっているパッケージが
一目でで確認できるのが良い。
|————+———-+———————|
| パッケージ | 起動時間 | メモ |
|————+———-+———————|
| helm | 3.1秒 | ほぼ helm-files |
| howm | 1秒 | howm-varsが 0.4秒 |
| magit | 0.9秒 | ほぼ log-edit/messa |
| org | 0.6秒 | |
| w3m | 0.6秒 | |
|————+———-+———————|
主に履歴やメモ類のファイル読み込みに時間がかかっているみたいだ。
どれも必要な手順だから、しょうがないか。
howm/magit/org/w3m あたりは遅延呼び出しにしても良いけど、
それでも半分程度にしか短縮できないし、
どうせ朝に一回、数秒待つだけだから、このままにしよう。
ちなみに。
全く同じ設定ファイルでも Macのemacs は、 ほぼ瞬間で起動する。
MacBook はSSDだからね。
むしろ、OSXのウインドウのアニメーションを止めたいくらい。