Firefox 1.0x 系のキャッシュ解放を検証してみる

先月書いた Firefox 1.0系 はメモリを解放しない? というエントリ。 はてなブックマークでいろんな人にブックマークしてもらったり、いろんなサイトからトラックバックをもらったりと予想以上の反響で驚いているのだが、先日もらったトラックバックで興味深い指摘をもらった。

NyaRuRuの日記 – デマンドページング

オレはもともとの値だった 4MB (4096) で試してみたが、特に問題もないしメモリの使用量もだいたい 50~60MB前後のところから増えることがなくなった。(一時的に増えたときは、ウインドウを最小化すると一気に解放してくれる)。
Firefox 1.0系 はメモリを解放しない?

これは恐らく “Working Set” の値を見ておられるのだと思いますが,実際これは FireFox のメモリ空間の内どれだけ物理メモリに残すかという OS 側の目標値が減少しただけで,FireFox はメモリの解放どころか何もしていないと考えられます.

設定を変えたあと、ウインドウを最小化したらタスクマネージャのメモリ使用量の数値が一気に減ったので、てっきりキャッシュ解放の設定のおかげだと思いこんでいた。 ウインドウの最小化をしたらbrowser.cache.memory.capacity の設定をしてもしなくても数値は減少することが確認できた。 というわけで、

(一時的に増えたときは、ウインドウを最小化すると一気に解放してくれる)

という部分、 完全にはやとちりでした。 どうもすみません。

さて、そうなるとキャッシュ解放の設定も本当に効いているのか心配になったので、数値を取りながら検証してみた。

下に書いたような各ステップにおいて、メモリ使用量がどうなっているのかを NyaRuRuの日記 で紹介されていた Process Explorer を使用し、Working Set と Private Bytes の値をピックアップした。

環境:

Win XP SP2 (English)
Memory: 768MB (ページングファイルなし)
Firefox 1.0.7
Plugin: Flash, Java, Quicktime, Acrobat, RealPlayer (実際に使われたのは Flash のみ)

Steps

  1. 起動直後のメモリ使用量
  2. タブを10個開きそれぞれに違うページをロードした後のメモリ使用量
  3. 開いたタブを1個だけ残し、9個閉じた後のメモリ使用量
  4. 再びタブを10個開き、先ほどとは違うベージをそれぞれにロードした後のメモリ使用量
  5. 開いたタブを9個閉じた後のメモリ使用量
  6. ステップ 2を繰り返す
  7. ステップ3を繰り返す

で、結果がコチラ。
「設定なし」は browser.cache.memory.capacity に何も設定しない状態
「設定あり」は browser.cache.memory.capacity=4096 がセットされた状態
という意味である。

(クリックで拡大)


(クリックで拡大)

はじめのころはどちらも同じような感じのメモリ使用量になっているが、タブを使ったページのオープン、クローズを繰り返していくと、明らかに browser.cache.memory.capacity の設定がある方がメモリ(物理メモリ)の使用量は少なくなっていた。 この設定の違いによってメモリ使用量の数値に差が出ているということは、browser.cache.memory.capacity の設定は多少はいい方向へ働いていると言っていいのではないだろうか。
見ている数値がおかしいんじゃないか、検証方法がおかしいんじゃないか等、何かありましたら指摘してください。


2 Comments

  1. 検証ありがとうございました.
    うちの日記の書き方だと,browser.cache.memory.capacity の方も意味がないように見えてしまいますね.ウインドウ最小化の部分に対する言及であることが分かるように追記しておきました.紛らわしくてどうもすみません.
    日記の同日別エントリでも書きましたが,Mozilla のウインドウ最小化時の扱いについても既に議論されていて,Working Set の縮小を回避する config.trim_on_minimize オプションが追加されているようですね.
    http://forum.mozilla.gr.jp/?mode=al2&namber=9306&rev=&0&KLOG=62

  2. こちらこそありがとうございました。 今回はWindowsのメモリ管理について知るいい機会になりました。
    手元の 1.5β (Nightly Build 2005102211) で見てみたら、ウインドウを最小化しても物理メモリ(Working Set)のサイズが小さくならないですね。 about:config では項目は現れないですが、1.5 では config.trim_on_minimize がデフォルト false になっているようです。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.