|
大容量ファイル指定時に(現在の内容)でのgrepの動作に問題があるようですので
御検討をお願いします。
1.行の先頭のファイル名が不正文字コード:パターン 0xffとなることがある。
80MB, 335MB, 800MB等のファイルでのgrep時に発生検出したことがあります。
但し、200MB, 500MBの場合に正常にファイル名が出力されることもあります。
下の例は335MB 英数字のみのファイルについて
折り返しは固定、折り返し文字数256文字、
実ファイルは平均100文字/行、最大150文字/行程度、
大文字/小文字の区別あり、単語の検索モード指定、単語 "Summary"指定での
現在の内容でのgrep結果です。
(3002844): #---Summary-----------
同じファイルをファイル名指定で同じ条件でgrepした場合は次の通り
正しくファイル名が出力されます。
mnode_n50_s60000_f.log(3002844): #---Summary-----------
2.現在の内容でのgrep実行時間が他のケースよりも大きい
同じく335MBのファイルでの実行時間が次の通りです。
サーチ単語 Summaryはファイルの最後近くにあり、
ファイルは全部メモリにキャッシュされた状態です。
(Athlon64 2800, 2GB, WinXP)
検索: 4秒弱
ファイル指定のgrep: 25秒
現在の内容指定のgrep: 47秒
検索、ファイル指定のgrepでは CPU負荷100%の状態で実行されます。
現在の内容指定grepの場合、最初25秒程、表示がエディット画面のまま変らず、
CPU負荷40-50%でディスクアクセス他をしているようです。
その後 "grepの処理中”の表示が出てCPU負荷100%の状態で約22秒実行し、
...Summay...と結果が表示されます。
ファイル読み込み直後等、ファイル内容は全部主記憶にキャッシュされているの
で、
ファイル指定のgrepの場合と同様な時間で、最初の25秒程の実ディスクアクセ
スは
無しに現在の内容指定 のgrepも実行可能と考えられますので、ご検討お願いし
ます。
さらには 条件が異なるので無理かも知れませんが、検索の場合と同じオーダーの
時間で現在の内容指定grepが出来ないかも検討していただくことを希望いたしま
す。
圧縮ファイルは30MB程度ですので必要であればお送りすることは出来ます。
(もっと小さいファイルのケースも再度確認して送ることも出来ますが)
以上 よろしくお願いします。
|
|