[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08126] watch.l 常用時のコストについて



やまもとさん、亀井さん、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

Index Home