青柳です。

100MBを越えるPDFをインデクシングしようとすると、mknmzがメモリ不足を
起こすという現象がありました。

mknmzを追いかけてみたところ、830行目の次のところで落ちていました。

            $mtype_m = $Magic->checktype_magic($$contref)
              if ((! defined $mtype_c) ||
                  $mtype_c =~
                  /^(text\/html|text\/plain|application\/octet-stream)$/);

ファイル全体を $confref に読み込み、checktype_magic() にコピーで渡して
更に File::Magic 内でもコピーで渡されてという処理を繰り返している内に
メモリ使用量が爆発してしまったようです。

とりあえず、このときは PDF ファイルのみでしたので、-t でファイルタイプを
指定してやることでインデクシングを正常に行うことが出来るようになりました。


以上、巨大なファイルをインデクシングする場合の参考になりましたら幸いです。
-- 
Shigekazu Aoyagi <aoy...@kyf.biglobe.ne.jp>

_______________________________________________
Namazu-users-ja mailing list
Namazu-users-ja@namazu.org
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja

メールによる返信