起動時間を計測する 改訂版

起動時間を計測する - すぎゃーんメモ の続き。
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-timebefore-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)))))

と書いて小数点第三位までを表示するようにした。