[mew-dist 20061] Re: 大量のメールを保存している場合のパフォーマンス改善について

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2002年 1月 11日 (金) 15:53:09 JST


  | Message-Id: <20020111.131703.74730269.ishizuka at example.com>
  | Date:       Fri, 11 Jan 2002 13:17:03 +0900
  | From:       Masachika ISHIZUKA <ishizuka at example.com>
  | Subject:    [mew-dist 20060] Re: 大量のメールを保存している場合の..

  |   どうもファイル数ではなく、.mew-cache の大きさがネックみたいな
  | ので、確かにディレクトリ構造を変えても駄目かもしれませんね。

プロファイルをとってみると、なにが遅いのかわかるかもしれません。
M-x (elp-instrument-package "mew-") RET
キーをたたく
M-x (elp-results) RET
M-x (elp-restore-all) RET ;おわり

あとFreeBSDのDIRHASHをつかうときには
sysctlでvfs.ufs.dirhash_maxmemをチューニングしましょう。

    *    *    *

mew-summary-pick-with-mewls()ではmewlsがsortしてますが
mew-summary-pick-with-external()はemacsでsortしてます。
BSD由来のファイルシステムではディレクトリに格納されている順序で
ファイルを参照(lookup)していく場合が最適化されているので
mewls.cでqsortしないでおいて、あとでemacsがソートするといいかも。
(ふつうにlookupするとディレクトリの大きさに比例したコストがかかるが
 順番どおりにlooukupすると定数コストになる)

scanのときでも
とりあえずディレクトリ格納順で.mew-cacheをつくっておいて
あとからソートする方が速い場合もあるかもしれません。

ただ、2度目のpick/scanではlookup cacheが効いて
そもそも十分速いので改善効果はありません。
またディレクトリが小さい場合には効果はほとんどみえないとおもいます。
効くのは:
    - 1度目のscan/pickでディレクトリは小さくない
    - lookup cacheがあふれるほどディレクトリがでかい

--
KOIE Hidetaka 鯉江英隆 <hide at example.com>



Mew-dist メーリングリストの案内