[xyzzy:08126] watch.l 常用時のコストについて
- Subject: [xyzzy:08126] watch.l 常用時のコストについて
- From: OHKUBO Hiroshi <konata_o@xxxxxxxxxxx>
- X-mailer: EdMax Ver2.84.5F
やまもとさん、亀井さん、MLのみなさんこんにちは。OHKUBO Hiroshi です。
やまもとさんの公開されている watch.l 2002.03.05版 は前の版と異なり
細かく (add-hook ...) (delete-hook ...) しなくなったようなので、
常用させてもらうに辺りちょっとコストを測ってみました。
(defun measure-watch-cost (num)
(let ((btime (get-internal-real-time))
(func 'ed::watch-symbol))
(dotimes (i num)
(funcall func))
(- (get-internal-real-time) btime)))
をバイトコンパイルしてロードしました。
watch している変数等は初期設定のままで、ed::buffer-mode、ed::mode-name
の 2 つです。
・watch を有効にしている場合
(measure-watch-cost 1000)
=> 3410
・watch を無効にしている場合
(measure-watch-cost 1000)
=> 5
(measure-watch-cost 10000)
=> 55
有効にしている場合でも 1000 回で 3.4 秒。
常時フックでも問題無い感じですね。
siteinit.l にまた新たな一行 (load-library "watch") が増えました (^^;
やまもとさん、素晴らしいものをありがとうございます。
---
OHKUBO Hiroshi
konata_o@xxxxxxxxxxx
http://members.tripod.co.jp/ohkubo/xyzzy/index.html