アカウント名:
パスワード:
#画像レンダリングの処理は、穴の問題を覗けば正直 IE の方がずっと良くできていると思う。
リークするという話もありますが、Gecko エンジンが伝統的に画像を一旦実サイズで展開する、という困った仕様の方を先に直して欲しい。
ここに疑問があります。この「実サイズで展開」というのは「ウィンドウに収まらないピクセルサイズの画像を単独で表示させようとしている場合、一旦画像本来のピクセルサイズで展開とともに表示を開始して、全部表示し終えてからウィンドウサイズにあわせて縮小表示しなおす」という動作のことでしょうか。これの見栄えが悪いというのならわかりますが、とりあえず今はメモリの話ですよね。
それとも、「上記の縮小表示によって、あるいはimg要素のサイズ指定(width、height属性)によって画像本来のピクセルサイズよりも小さく表示させようとしている場合、画像本来のピクセルサイズで表示させようとした場合と同じだけメモリを使用する」という動作のことでしょうか。
例えば、サムネイル画像を別個に用意するのではなく、大きな画像自体を見かけだけ縮小してサムネイル表示に用いて、画像一覧を作っているようなページ。そういったページを表示させるとメモリを食いますが、それはIEでもFirefoxでもOperaでも同じでしょう。
ソフトウェアが画像を(ハードウェアの助けを借りずに)表示しようとする場合には、画像フォーマットがなんであろうと、一旦メモリ上に本来のピクセルサイズの、圧縮されてないピットマップを展開するのが一般的だと思います。タレコミにあるような大きな画像(JPEG、GIF、PNG)、それを用いた縮小画像一覧のページを作ってWindows上で確認したところ、いずれのブラウザも「画像をBMPフォーマットにしたときのファイルサイズ+α」のメモリを使用しています。
いずれのブラウザも、別ページに移る、ウィンドウを閉じる、ウィンドウを最小化する、他のアプリがメモリを必要とする、などといったきっかけがない限りそのメモリを手放しません。推測ですが、Javascriptでのサイズ変更があっても再度展開する必要なくすみやかに再描画できるので、DHTML的なことも要求される今時のレンダリングエンジンからすればすぐに手放さないのが得策、ということでしょうか。
つまり「実サイズで展開する(それによってメモリを食う)」ことはGecko特有の動作ではないと思います。それとも、もっと別のものを指しているのでしょうか。
うーん、その後4000×3000×8bitのGIFを作って試していたんですが、手元の環境ではIEが表示完了とともにメモリ解放するのを確認できていません。件のサイズの画像10枚だと、IEは4000 ×3000×1byte×10枚=120MB程度を使ったままになります。
ウィンドウを最小化するなどして、タスクマネージャで見られるプロセスのメモリ使用量が減ってもコミットチャージには変化がなく、システムを圧迫したままになっているように思います。
で、メモリ使用量から察するに8bitのGIFを、IEとOperaは8bitのまま展開、Firefoxは24bitに展開しているらしい、というのはわかりました。その結果IEではまだまだ余裕のあるページでもFirefoxでメモリを使い切る場合がありますが、この「フルカラーで展開」が原因ではないでしょうか。
# Firefoxでは、そういった負荷の非常に大きいページの表示後もページキャッシュ機能によって開放のタイミングは遅れ、次に表示させるページによってはさらに負荷が重なりますが、とりあえず持ちこたえてページキャッシュ最大数から押し出されればきちんと解放されているようです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
「100MB~200MBのメモリ使用量」? (スコア:2, 参考になる)
タスクマネージャでみると,今現在firefox.exeの「メモリ使用量」が「396,192K」とか表示されているんですが。500Mいくことも珍しくないです。
1Gの物理メモリをつんだWindows XPでFirefox 1.5.0.1をつかってます。
Re:「100MB~200MBのメモリ使用量」? (スコア:3, 参考になる)
#画像レンダリングの処理は、穴の問題を覗けば正直 IE の方がずっと良くできていると思う。
Re:「100MB~200MBのメモリ使用量」? (スコア:1, おもしろおかしい)
穴があったら覗きたい、とφ(..)m(マテ
Re:「100MB~200MBのメモリ使用量」? (スコア:1, 参考になる)
単に Gecko が腐りきってるだけだと思うんですが、、、
Gecko は大富豪プログラムの典型みたいなもんで、画像の描画以外も、何でもかんでも湯水のようにリソースを使うようです。潤沢な環境では理想的なスピードが出るんでしょうけど、現実的にはあらゆる処理が重いんですよね。
組込み系のはずの Minimo も同じスタンスなのか、とてつもなく遅いです。
しばらく前に PocketPC版の Minimo を試したのですが、起動にかかる時間だけで、PocektIE や Opera なら起動してネットにつないで(ダイアルアップのネゴシエーションなどもここに入る) yahoo のトップページ見て終了するくらいかかっちゃいます。
阿呆らしくて、アップデートされても試す気にもなりません。
Re:「100MB~200MBのメモリ使用量」? (スコア:2, 参考になる)
使ってみることをおすすめします。
感覚的には、起動は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に戻ってしまいました。
Re:「100MB~200MBのメモリ使用量」? (スコア:1, 参考になる)
あ、お呼びじゃないですか。
Re:「100MB~200MBのメモリ使用量」? (スコア:1)
さくっとスルーしちゃいましたけど、
Operaは使ったことが一度もないので何ともいえないんです。
実サイズで展開? (スコア:1)
ここに疑問があります。この「実サイズで展開」というのは「ウィンドウに収まらないピクセルサイズの画像を単独で表示させようとしている場合、一旦画像本来のピクセルサイズで展開とともに表示を開始して、全部表示し終えてからウィンドウサイズにあわせて縮小表示しなおす」という動作のことでしょうか。これの見栄えが悪いというのならわかりますが、とりあえず今はメモリの話ですよね。
それとも、「上記の縮小表示によって、あるいはimg要素のサイズ指定(width、height属性)によって画像本来のピクセルサイズよりも小さく表示させようとしている場合、画像本来のピクセルサイズで表示させようとした場合と同じだけメモリを使用する」という動作のことでしょうか。
例えば、サムネイル画像を別個に用意するのではなく、大きな画像自体を見かけだけ縮小してサムネイル表示に用いて、画像一覧を作っているようなページ。そういったページを表示させるとメモリを食いますが、それはIEでもFirefoxでもOperaでも同じでしょう。
ソフトウェアが画像を(ハードウェアの助けを借りずに)表示しようとする場合には、画像フォーマットがなんであろうと、一旦メモリ上に本来のピクセルサイズの、圧縮されてないピットマップを展開するのが一般的だと思います。タレコミにあるような大きな画像(JPEG、GIF、PNG)、それを用いた縮小画像一覧のページを作ってWindows上で確認したところ、いずれのブラウザも「画像をBMPフォーマットにしたときのファイルサイズ+α」のメモリを使用しています。
いずれのブラウザも、別ページに移る、ウィンドウを閉じる、ウィンドウを最小化する、他のアプリがメモリを必要とする、などといったきっかけがない限りそのメモリを手放しません。推測ですが、Javascriptでのサイズ変更があっても再度展開する必要なくすみやかに再描画できるので、DHTML的なことも要求される今時のレンダリングエンジンからすればすぐに手放さないのが得策、ということでしょうか。
つまり「実サイズで展開する(それによってメモリを食う)」ことはGecko特有の動作ではないと思います。それとも、もっと別のものを指しているのでしょうか。
Re:実サイズで展開? (スコア:1)
Re:実サイズで展開? (スコア:1)
うーん、その後4000×3000×8bitのGIFを作って試していたんですが、手元の環境ではIEが表示完了とともにメモリ解放するのを確認できていません。件のサイズの画像10枚だと、IEは4000 ×3000×1byte×10枚=120MB程度を使ったままになります。
ウィンドウを最小化するなどして、タスクマネージャで見られるプロセスのメモリ使用量が減ってもコミットチャージには変化がなく、システムを圧迫したままになっているように思います。
で、メモリ使用量から察するに8bitのGIFを、IEとOperaは8bitのまま展開、Firefoxは24bitに展開しているらしい、というのはわかりました。その結果IEではまだまだ余裕のあるページでもFirefoxでメモリを使い切る場合がありますが、この「フルカラーで展開」が原因ではないでしょうか。
# Firefoxでは、そういった負荷の非常に大きいページの表示後もページキャッシュ機能によって開放のタイミングは遅れ、次に表示させるページによってはさらに負荷が重なりますが、とりあえず持ちこたえてページキャッシュ最大数から押し出されればきちんと解放されているようです。
Re:「100MB~200MBのメモリ使用量」? (スコア:1)
喰いまくってました。
よく皆平気だなと思いつつ拡張機能を削ぎ落としていったら、
増えても200Mくらいまで減りました。
誰かリークしてたなと。
1GのメモリのXPで1.5.0.1
Re:「100MB~200MBのメモリ使用量」? (スコア:1)
いや (スコア:0)
得てして、多く使うとそのさが大きくなるんでありえるでしょう。
そもそも逆説になるけど
だから沢山メモリを使ったら即メモリリークではないと判断するのは……
Re:いや (スコア:1)
判断材料がないのに断定するのはまずいというだけの話。
逆説になってないし、この話はメモリリークではないとは書いていない。
論理的な思考をしましょう。
#と適当に思いついたことを書いてるだけの人が偉そうに言ってみるテスト。