[Mew-dist 13608] RE: accelarate mewls (on Windows98)

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2000年 7月 12日 (水) 01:17:31 JST


From: Kyotaro HORIGUCHI <horiguchi.kyotaro at example.com>
Subject: [Mew-dist 13604] accelarate mewls (on Windows98)
Date: Tue, 11 Jul 2000 18:39:09 +0900

  |  2. 部分表示でも時間がかかってつらいのでそこを直してみました.
  | 
  |     オリジナルではフォルダ中のすべてのファイルに対して stat して
  |    いますが, 修正後はファイル名で選ばれたファイルにだけ stat して
  |    います. これで私の環境では mewls +ml/Mew 9000 (表示されるのは
  |    16 メッセージ)の所要時間が数分から3秒に縮みました.

サブフォルダが極端に多い場合にこのような結果になるのでしょうか。
せっかくなのでstat()ではなくfstat()をつかってみたら
8000個のメイルがあるフォルダに対してmewlsを実行したところ
8秒だったのが6秒になりました。主にシステム時間が短くなってました。

In scanfolder():
        for (i = 0; i < n; i++) {
                sprintf(fnbuf, "%d", *(list + i));
                fp = fopen(fnbuf, "r");
                fstat(fileno(fp), &st);
                if (!(st.st_mode & S_IFREG)) {
                  fclose(fp);
                  continue;
                }
                if (fp == NULL) continue;
                dumpheader(fp, fnbuf);
                fclose(fp);
        }

両者ともキャッシュが完全に効いた状態で試験しましたので
ほとんどの場合において、あまり改善されないと思われます。

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



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