2006年10月26日

[Namazu-devel-ja 1327] Re: mknmz の処理時間短縮

臼田です

On 2006/10/26, at 2:17, Tadamasa Teranishi wrote:

>
>> ・こんな簡単に速くなるのならばFAQに書いておくべきだ
>> ・環境を調べて推奨設定を書き出すツールを作ってはどうか
>> ・ボトルネックは他にあったようだ

>
> 過去にもちょろっと書いたのですが。
>
> mknmz が遅い最大の理由は、中間ファイルの書き出しにあります。
> これは読込んだファイルサイズが $ON_MEMORY_MAX を越える度
> に発生し
> ます。
> ゆえに大量のファイルを処理すれば中間ファイルの書き出しが頻繁に
> 発生することになります。
>
> $ON_MEMORY_MAX は、その変数名から想像するようなメモリサイズとは
> 何ら関係ありません。当然、物理メモリサイズとの因果関係は何も
> ありません。

・シェルで設定されたユーザーメモリ利用の制限値を超えると
Perl が止まる
・対象ファイル数が多い際に Perl のスタック?が溢れ
Perl が止まる
・上記の2件を防止するために連続して読み込んだファイルサイ
ズの合計が
 $ON_MEMORY_MAX に達したところで一時書き出しをしている。

物理メモリサイズが増えてきているのを前提として OS, シェル,
Perl 等
の初期設定値も昔とは変わってきているのではないでしょうか。
また、かつて Out of Memory を発生させていた要因である
base64 の
処理が改善されてきていることから読み込みファイルサイズと使用メモリ
の関係が変化してきていることと思われます。
そもそも $ON_MEMORY_MAX の値は Out of Memory 症状の
原因との
因果関係は少ない経験値のようなものです。

臼田幸生

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

投稿者 xml-rpc : 2006年10月26日 07:49
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/48320
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。