起動時間を計測する - すぎゃーんメモ の続き。
id:tomoyaさんからコメントで教えていただきまして、emacs-init-time
という関数が存在していることを知りました。定義は
(defun emacs-init-time () "Return a string giving the duration of the Emacs initialization." (interactive) (let ((str (format "%.1f seconds" (float-time (time-subtract after-init-time before-init-time))))) (if (called-interactively-p 'interactive) (message "%s" str) str)))
となっていて、まさに中でafter-init-time
とbefore-init-time
の差分を計算している。わざわざ自分で書かなくてもこのコマンド一発で起動にかかった時間を知ることができるんですね、、。ただ、表示されるのは秒単位で小数点第一位までのようで、そこらへんカスタマイズは出来ないぽい。そうか、時間の加減を扱う場合はfloat-time
とかtime-subtract
とかを使うと良いんだ。
ということで結局自分の~/.emacs.el
では
(add-hook 'after-init-hook (lambda () (message "init time: %.3f sec" (float-time (time-subtract after-init-time before-init-time)))))
と書いて小数点第三位までを表示するようにした。