この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2006年2月)

2006年2月16日

Firefoxの使用メモリ量雑感
初回投稿日時: 2006年02月16日04時22分47秒
最終更新日時: 2006年02月17日02時11分55秒
カテゴリ: Firefox
SNS: (list)

slashdotで話題になっているが、まあ、メモリ食いなのは仕様ではある。正直、何を今更、という感がぬぐえない話なのだが、少しだけ雑感を。

Fx1.5以降はbfcacheが搭載され、これのメモリ消費がバカにならない訳だが、そもそもbfcacheが実装されたいきさつを考えると、Operaのようにレイアウト結果もキャッシュに保存しておいて、戻る、進むを高速化して欲しいという要望があったからであって、これをオフにすると、今度は速度で文句を言う人間が出てくるのみで堂々巡りがオチである。(注意: bfcacheが実際に何を保存しているのかは知らない。レイアウト結果ではないかもしれない。)

駄目なロジックを改善する場合を除けば、高速化というのは、メモリをいかにうまく使って計算回数を減らすか、ということになるのではないかと思う。(例えば、昔から有名なのは三角関数を多用するなら、計算結果を配列に保存しておくとか。)そういう意味では、あちらを立てればこちらが立たない、という状況になってくる訳だ。つまり、いくらバランスをとろうとしても、どこかにそのチューニングによる被害を受ける人は出てくると思う。(もちろん、マーケティング上は、この被害者をいかに減らせるかが問題ではあるが、大半の設定はマーケティングとは無関係に開発者によって決定されてリリースされるので、普通の商品とは少し事情が違っている。)

ここで注意したいのは、Mozilla系のプロダクトはある一貫したポリシーを持っている(と思われる)ことだ。メモリを犠牲にして、速度向上に努めるのが基本方針のようである。(誰の意志が色濃く反映されているか分からないので偶然かもしれないが、)例えば、Windows版で、ウインドウを最小化してもメモリを解放しなくなったのは、ウインドウ復元時にパフォーマンス低下の苦情が多かったことへの対応なので、この方針に一致している。

また、内部処理で多用されているnsIAtomにしても同じである。メモリ食いだが、文字列比較に比べれば明らかに高速に処理できる。

つまり、結論を言えば、Mozilla系のプロダクトはデフォルト設定のままだとCPUに金をかけたPCよりもメモリに金をかけたPCのほうが快適に動くということである。(設定でbfcache等を無効にすることでメモりへの負担は軽減可能なので、製品のパフォーマンスが最も発揮される状態が初期設定となっているのは自然なことである。)

メモリ不足を深刻に考えるユーザへのアドバイスとしては、設定をチューニングするのはもちろん、タブを開きすぎるな、とも言いたい。何十個もタブを開いたら、すごい容量のメモリを食うが、考えてみれば当然の話だ。なぜなら、それだけのウインドウを開いているのと変わらないのだから。(しかもそれぞれのタブにひもづいてbfcacheも倍増する。)

タブブラウザは画面にウインドウが氾濫しないという点では優れているが、メモリ消費に関しては、非タブブラウザと大して変わりはない。もし、その見た目から省メモリであると思う人がいるなら考えを改めた方が良い。

結局の所、Mozilla関連プロダクトは潤沢なリソースのある環境ほど高速に動作するように設計(設定)されていると言える。長年PCをアップグレードしていないユーザからは苦情が出るかもしれないが、頻繁にアップグレードしているユーザが利益を享受できるというのは健全で理にかなっていると言える。車で考えると分かりやすい。快適に乗りたければそれなりに金を積む必要があるわけだ。

関連するかもしれないエントリ

関連するかもしれないエントリを発見できませんでしたが、無いとは限りません。