[Mew-dist 03404] Re: im-82.tar.gz
SAKAI Kiyotaka
ksakai at example.com
1998年 1月 14日 (水) 23:59:50 JST
>> In article <19980114150954P.takano at example.com>, Takano Yuji <takano at example.com> writes:
> にこにこです。随分と懐かしい速さを体験出来ました(^^)。フォルダ
> の中に 2200 あるメールのソートをしてみたりしましたが、mew1.06 の
> 時と比べても遜色無い位の速さです(^^)。
> たかの@感激の速さです(^^)。
ちょっと補足しますと、IM が遅い一番大きな原因として use 関数で library
を読み込むときのオーバーヘッドが大きいことが挙げられます。
use 文では file をロードするのと同時に、その中に定義してある関数が
package の scope で見えるような constructor が実行しますが、use で読み
込んだ file の中ですでに読み込んだファイルを use していたとしても、
package の scope が違うために再度その constructor が実行されます。
ですので、
1. 不要な use 文は消す。
2. 必要な use 文であっても、その packge を必要としている関数が 1,2 個
であれば、実行時に require & import 文を実行することで、その package
を必要としない他の関数に影響を与えない。
3. use や import するときに import する関数名を列記することで、実行さ
れる constructor を最小限に抑える。なお、これは、何の関数のためにそ
の use を実行しているかを明確にする効果もある。
ということを行いました。
ただ、自分で profile を取った数字だと、コマンドにもよりますが 5〜10%
程度の性能向上でしたので、「感激の速さ」というのはやや意外です。
# 話は変わりますが、immv や imrm 等に記述されている IMAP 関連の関数は、
# なるべく Imap.pm にまとめまれていると嬉しいと思いますが、いかかでしょ
# うか?
--
酒井 清隆 (E-mail: ksakai at example.com)
Mew-dist メーリングリストの案内