[Mew-dist 14753] Re: pick patternのキー head

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2000年 10月 25日 (水) 14:14:39 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [Mew-dist 14748] Re: pick patternのキー head
Date: Wed, 25 Oct 2000 12:10:14 +0900

  | > #MH形式はシーケンシャルread時の先読機能を台無しにするのでpickが速くならん。
  | 
  | これ具体的に言うとどういうことでしょう?

ファイルシステムはプロセスがシーケンシャルリードしていることを発見すると
ディスクからまとめ読み(read ahead)するようにパラメータを変更します。
なので、大きいファイルをgrepしているときは
readシステムコールはIO待ちでブロックすることなく
先読したキャッシュにヒットします。
#コードはFreeBSDでしか見たことはないですが、
#どのOSでも同じことをやっていると思います。

メイルのサイズは数KB程度のが多数で、
先読する間もなく1メイル全体を読み終ってしまいます。

MH形式だと1メイル毎にIO待ちが発生して全てのメイルを読むのは遅いのですが、
mbox形式だと全てのメイルが1つのファイルに連結されているので
1メイルを読むときに、その先にある多数のメイルも同時に読み込まれるため
次のメイルを読むときにははキャッシュにヒットするのでIO待ちなしに読めます。

なのでmbox形式の方が圧倒的にIO待ちの時間が減らせて、pickが速くなる。
手元で10000ファイルあるフォルダで試したら約10倍の速さでした。
#tarで固めてそれに対してのgrep時間で判断しただけです。

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



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