Firefoxの設定「browser.sessionhistory.max_total_viewers」について

バージョン1.5.0.1について.思考過程を順に追ったメモ.読みにくい.誤謬訂正歓迎.

メモリリークとか,馬鹿食いとか.コレを解消するために「browser.sessionhistory.max_total_viewersを既定の-1から0にすれば良い」という文章は見つかる.本エントリはその理由のメモ.

MoxillaZineのKBによると,ページ表示高速化に貢献する(はず)の設定であるらしい.「戻る」の後で「進む」をしたら,そのページは既読である.

さて,Firefox(というよりGecko全般かも知れない)はそのページをキャッシュとしてメインメモリに格納しているそうだ.「HTMLとかCSSとか解析しないで,コレをまた引っ張り出すだけじゃん」てことで,表示が早くなるわけらしい(「〜を解析しないで」のくだりは根拠無し.とりあえず何かの処理をスキップするって事の例として挙げたまで).で,そのサイズは平均的には4MBらしい.Browser.cache.memory.capacityの制限とは無関係であることが,判る.スラドRe:バグではないけど (スコア:3, 参考になる)のとおり,メインメモリが512MBでも,「自動設定によるの22528KBなんて不要だ.ほにゃららKBでいいや」と判断しても良いわけだ.

話を本筋に戻す.-1設定,すなわち自動設定では,メインメモリを512MB積んでると,5ページまで履歴を保存するらしい.平均値を利用すればざっと20MB食うわけだ.

次に気にすべきはセッション毎ということ.e-Wordsによると,セッションはウェブサイト毎で作られるようだ.サーバが違えば別セッションが開くのかな.いや,情報セキュリティ・個人情報保護関連用語集のほうが正確かな.アシスト情報としてMacroMedia社のページとか.

セッションを理解するにはThinkITのコラムが最適かもしれないが,続きは会員登録(無料だそうだ)を求められた.面倒だから見ない.

とりあえず「セッション数」は「閲覧サーバ数」ぐらいは在るかも,とする.

馬鹿試算をやる.メインメモリ512MBで-1設定とし,全セッションが最大ページ(5)まで遷移していたら,という条件.

4[MB] * 5[page] * 20[session] = 400[MB]

わーお,馬鹿食いですね(棒読み).ということで皆さん,自動設定によってほにゃららページも保存するんじゃねーッ!って思ったなら,そのときすでに0への設定変更は済んでいるんだ.

まとめ

  1. browser.sessionhistory.max_total_viewersを0とか1とか2に変えてみる(つまり,メインメモリ容量により定まる値より小さくする)
  2. のんびり試用する
  3. やっぱり馬鹿食いするなら,もう1ページ減らして2に戻る
  4. 上品なら良し

参考リンク