パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Firefoxのメモリ大量消費は『仕様』、だが回避方法あり」記事へのコメント

  • by tnk (13707) on 2006年02月15日 18時13分 (#884103)
    みなさん,そんなで済んでるんですか?

    タスクマネージャでみると,今現在firefox.exeの「メモリ使用量」が「396,192K」とか表示されているんですが。500Mいくことも珍しくないです。

    1Gの物理メモリをつんだWindows XPでFirefox 1.5.0.1をつかってます。
    • リークするという話もありますが、Gecko エンジンが伝統的に画像を一旦実サイズで展開する、という困った仕様の方を先に直して欲しい。切に希望します。このせいで Firefox が 1GB メモリを全部食いまくってまともに動かなくなるのが毎日数回 orz

      #画像レンダリングの処理は、穴の問題を覗けば正直 IE の方がずっと良くできていると思う。

      親コメント
      • by Anonymous Coward on 2006年02月15日 23時57分 (#884291)
        >穴の問題を覗けば
        穴があったら覗きたい、とφ(..)m(マテ
        親コメント
      • by Anonymous Coward on 2006年02月16日 2時24分 (#884352)
        その点については IE が普通な水準なだけであって、IE が良く出来てるわけじゃないですよね?
        単に Gecko が腐りきってるだけだと思うんですが、、、

        Gecko は大富豪プログラムの典型みたいなもんで、画像の描画以外も、何でもかんでも湯水のようにリソースを使うようです。潤沢な環境では理想的なスピードが出るんでしょうけど、現実的にはあらゆる処理が重いんですよね。
        組込み系のはずの Minimo も同じスタンスなのか、とてつもなく遅いです。
        しばらく前に PocketPC版の Minimo を試したのですが、起動にかかる時間だけで、PocektIE や Opera なら起動してネットにつないで(ダイアルアップのネゴシエーションなどもここに入る) yahoo のトップページ見て終了するくらいかかっちゃいます。
        阿呆らしくて、アップデートされても試す気にもなりません。
        親コメント
        • by __hage (7886) on 2006年02月16日 8時55分 (#884396)
          Minimoはよく知らないんですが、Windowsですとk-meleon [sourceforge.net]を
          使ってみることをおすすめします。

          感覚的には、起動はIEよりちょっとだけ遅いくらい、
          レンダリングはひょっとするとIEよりも速いくらい、
          IEのプアなCSS表現力も考慮すると驚異的な速さだと言っていいと私は思います。
          Geckoの(速度に関する)実力はFirefoxなどで推し量っては間違えます。

          んで、でかいHTML [cocolog-nifty.com]をレンダリングさせたらどうなんだと思ってやってみたら、
          IEのほうが速かったですw えとGeckoの方が速いというのは訂正します。

          FirefoxはXULが足を引っ張っているのではないかと予想しています。
          もっさりした操作感はこれが原因でしょう。
          ちなみにK-Meleonはレンダリング以外の動作もきびきび動きます。

          ただ、PocketPC版はない(と思う)のでそっちはどうだかわかりませんけど。

          ちなみにメモりはいちいちOSに返却してるみたいです。
          /.のこのストーリーのコメントを全部表示させた状態で24M弱、
          Yahoo! JAPANのトップページを表示させた状態では24M強です。
          この程度ですと大富豪とまでは呼べない気がします。
          って基準はなんだ? とかいう話になっても困りますがw

          とはいえ常用してるのはFirefoxなんですけどね。
          以前触ってみて、あまりの軽さに衝撃をうけて乗り換えを検討したのですが、
          便利な拡張機能の存在が決め手となってFirefoxに戻ってしまいました。
          親コメント
      • リークするという話もありますが、Gecko エンジンが伝統的に画像を一旦実サイズで展開する、という困った仕様の方を先に直して欲しい。

        ここに疑問があります。この「実サイズで展開」というのは「ウィンドウに収まらないピクセルサイズの画像を単独で表示させようとしている場合、一旦画像本来のピクセルサイズで展開とともに表示を開始して、全部表示し終えてからウィンドウサイズにあわせて縮小表示しなおす」という動作のことでしょうか。これの見栄えが悪いというのならわかりますが、とりあえず今はメモリの話ですよね。

        それとも、「上記の縮小表示によって、あるいはimg要素のサイズ指定(width、height属性)によって画像本来のピクセルサイズよりも小さく表示させようとしている場合、画像本来のピクセルサイズで表示させようとした場合と同じだけメモリを使用する」という動作のことでしょうか。

        例えば、サムネイル画像を別個に用意するのではなく、大きな画像自体を見かけだけ縮小してサムネイル表示に用いて、画像一覧を作っているようなページ。そういったページを表示させるとメモリを食いますが、それはIEでもFirefoxでもOperaでも同じでしょう。

        ソフトウェアが画像を(ハードウェアの助けを借りずに)表示しようとする場合には、画像フォーマットがなんであろうと、一旦メモリ上に本来のピクセルサイズの、圧縮されてないピットマップを展開するのが一般的だと思います。タレコミにあるような大きな画像(JPEG、GIF、PNG)、それを用いた縮小画像一覧のページを作ってWindows上で確認したところ、いずれのブラウザも「画像をBMPフォーマットにしたときのファイルサイズ+α」のメモリを使用しています。

        いずれのブラウザも、別ページに移る、ウィンドウを閉じる、ウィンドウを最小化する、他のアプリがメモリを必要とする、などといったきっかけがない限りそのメモリを手放しません。推測ですが、Javascriptでのサイズ変更があっても再度展開する必要なくすみやかに再描画できるので、DHTML的なことも要求される今時のレンダリングエンジンからすればすぐに手放さないのが得策、ということでしょうか。

        つまり「実サイズで展開する(それによってメモリを食う)」ことはGecko特有の動作ではないと思います。それとも、もっと別のものを指しているのでしょうか。

        親コメント
        • IE の動きに関する限り、違います。一枚ごとに (実際に展開する処理をしているかどうかは不詳ですが) 縮小表示された時点では既にメモリを解放しています。結果として Gecko エンジンのブラウザと IE は表示時点でかなりメモリの結果が違う。特に私のよく使う 4000x3000 程度の大きさの GIF 画像が数十枚張り込まれた文書だと顕著ですし、第一この挙動何回もバグに積まれて議論になっています。仕様という回答になるんですけど。
          親コメント
          • うーん、その後4000×3000×8bitのGIFを作って試していたんですが、手元の環境ではIEが表示完了とともにメモリ解放するのを確認できていません。件のサイズの画像10枚だと、IEは4000 ×3000×1byte×10枚=120MB程度を使ったままになります。

            ウィンドウを最小化するなどして、タスクマネージャで見られるプロセスのメモリ使用量が減ってもコミットチャージには変化がなく、システムを圧迫したままになっているように思います。

            で、メモリ使用量から察するに8bitのGIFを、IEとOperaは8bitのまま展開、Firefoxは24bitに展開しているらしい、というのはわかりました。その結果IEではまだまだ余裕のあるページでもFirefoxでメモリを使い切る場合がありますが、この「フルカラーで展開」が原因ではないでしょうか。

            # Firefoxでは、そういった負荷の非常に大きいページの表示後もページキャッシュ機能によって開放のタイミングは遅れ、次に表示させるページによってはさらに負荷が重なりますが、とりあえず持ちこたえてページキャッシュ最大数から押し出されればきちんと解放されているようです。

            親コメント
    • 私も最近までそんな感じで油断すると500Mとか
      喰いまくってました。
      よく皆平気だなと思いつつ拡張機能を削ぎ落としていったら、
      増えても200Mくらいまで減りました。
      誰かリークしてたなと。

      1GのメモリのXPで1.5.0.1
      親コメント
      • だから沢山メモリを使ったら即メモリリークと判断するのは……
        親コメント
        • by Anonymous Coward
          予約を含めて使用量が使用前と使用後と変わらないならいいけど
          得てして、多く使うとそのさが大きくなるんでありえるでしょう。

          そもそも逆説になるけど
          だから沢山メモリを使ったら即メモリリークではないと判断するのは……
          • by Elbereth (17793) on 2006年02月15日 21時41分 (#884211)
            >だから沢山メモリを使ったら即メモリリークではないと判断するのは……

            判断材料がないのに断定するのはまずいというだけの話。
            逆説になってないし、この話はメモリリークではないとは書いていない。
            論理的な思考をしましょう。

            #と適当に思いついたことを書いてるだけの人が偉そうに言ってみるテスト。
            親コメント

人生unstable -- あるハッカー

処理中...