Mechanizeって便利で、すごく使うのだけれど、履歴がさー履歴がたまるとメモリを食いつぶしました。
Mechanizeでは簡単に防げるようです
WWW::Mechanize#max_history で履歴の最大数を指定できます。履歴機能を活用しないという場合の推奨値は 1 です。 agent = WWW::Mechanize.new agent.max_history = 1 agent.get(uri)max_history= に 0 を指定すると履歴保持数が 0になりますが、メモリにファイル全体を取り込むこと自体は全く抑制できません。一度全部メモリに取り込んでから履歴が max_history 個になるように削除するという処理の流れになっており、WWW::Mechanize::File#save メソッドなどを即使っても「オンザフライ」で処理されるというようなことはありません。
RubyのMechanizeのよくある質問 - きたももんががきたん。
とのことです。簡単ですね。Mechanizeカッコイイ。
History=極小 にした場合の注意点は
リファラと、Headerチェックが行なわれなくなること。
Mechanize::History - Ruby Mechanize wiki (ja) - livedoor Wiki(ウィキ)
- If-Modified-Since 用の時刻が取れないので 304 かどうかチェックできない
0件設定は、デメリットが多いので、画像などを捌くときは、Mechanizeのhistory設定は1が適当のようですね。