[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Is shimbun-servers.el required? (was:shimbun-additional-servers-list
に簡単に追加する方法
)
- From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 25 Jul 2003 13:45:50 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 05594
- References: <uwue72vdb.fsf@bg66.koka-in.org>
>> On Fri, 25 Jul 2003 12:51:55 +0900
>> 「大」== bg66@koka-in.org (OHASHI Akira) said as follows:
大> えっと、私は「全てを元に戻せ」と言っているのではなくて、
大> shimbun-servers-list を生成するのは今のままにしておいて、
大> shimbun-additional-servers-list も半自動的に生成させられたら便利だ
大> なと言っているのです。
ああ,すみません.大場さんの問題提起とは少し異なる議論に踏み込んでしまっ
ていました.表題を変えます.
大場さんの指摘をきっかけとして,私が提起している問題は「滅多に呼び出さ
れないと思われる shimbun-servers-list() のためだけに,静的に生成される
ファイルを作ってまで高速化を追求する意味はあるのでしょうか? もっと
simple にした方がいいんじゃないでしょうか?」という問題です.
shimbun-servers.el が導入された背景には,[emacs-w3m:04619] での
>> On Tue, 04 Feb 2003 11:03:13 +0900
>> 「山」== yamaoka@jpl.org (Katsumi Yamaoka) said as follows:
山> nnshimbun.el の gnus-group-make-shimbun-group() では毎回
山> directory-files でサーバーとグループのリストを作っているので少しだ
山> け待たされるのですが、make 時に作っておけば楽になりますね。
という指摘があるだろうと思うのですが,実際にどの程度待たされるのか実験
してみました.
(progn
(load-library "shimbun-servers")
(defvar shimbun-additional-backend-path nil)
(defun shimbun-servers-list-as-function ()
(let (servers)
(dolist (dir (nconc
(list (file-name-directory (locate-library "shimbun"))
(file-name-directory (locate-library "w3m")))
shimbun-additional-backend-path))
(when (file-directory-p dir)
(dolist (file (directory-files dir nil nil t))
(when (and (string-match "\\`sb-\\(.*\\)\\.el\\'" file)
(not (member (setq file (match-string 1 file))
'("fml" "glimpse" "lump"
"mailarc" "mailman"
"mhonarc" "text"))))
(push file servers)))))
servers))
(byte-compile 'shimbun-servers-list)
(byte-compile 'shimbun-servers-list-as-function)
(require 'elp)
(elp-reset-all)
(elp-instrument-list '(shimbun-servers-list-as-function shimbun-servers-list))
(dotimes (x 100)
(shimbun-servers-list-as-function)
(shimbun-servers-list))
(elp-results))
結果は以下の通りです.
Function Name Call Count Elapsed Time Average Time
================================ ========== ============ ============
shimbun-servers-list-as-function 100 2.4430750000 0.0244307500
shimbun-servers-list 100 0.287327 0.00287327
という結果が得られました.確かに,関数版の方が1桁遅いのは事実ですが,1
回あたりの呼び出しにかかっている時間は,わずかに 0.02 秒です.NFS で提
供されている低速の home directory 上で実験して,この結果ですから,よっ
ぽどのことがなければ1秒もかからないはずだと思います.
ちなみに,load-path 全検索(= (length load-path) 107)にすると 0.11 秒に
増えました.これなら,「ちょっと待たされる」と感じるかも知れません.
というわけで,shimbun-servers.el そのものを消してしまってもいいんじゃ
ないかと思うのですが,いかがでしょうか?
--
土屋 雅稔 ( TSUCHIYA Masatoshi )