1

制約のあるデバイス (モトローラ セットトップ ボックス) で Mozilla v1.7.12 を使用して、いくつかのメモリ リークを解決しようとしています。

大きな画像を参照するスタイルシートを動的に読み込むと、画像のサイズに応じてメモリの消費量が増加することがわかります。これは私が期待するものです。

次に、スタイルシートを DOM から削除すると、メモリが解放されることが期待されます。ただし、これは起こりません。

これは問題です。私が取り組んでいる Web アプリケーションは、ページの存続期間中に何度もスタイルシートを動的にロードおよびアンロードできる必要があるためです。

したがって、私の質問は次のとおりです。私が見ているのは予想される動作ですか、それとも既知のバグですか? これを回避する方法はありますか?

スタイルシートのすべての画像で、expires ヘッダーを -1 に設定したことを指摘しておく必要があります。

[アップデート]

スタイルシートのロードとアンロードを繰り返すと、ブラウザーはますます多くのメモリを消費します。そのため、ブラウザが同じメモリを再利用しているわけではないようです。

4

1 に答える 1

0

バグかどうかは非常に主観的な問題です。ブラウザは、必要なときにメモリを使用し、せいぜいメモリが不要になったと判断したときに解放します。メモリを解放して要求し続けるよりも、再利用のためにメモリを保持する方が効率的であるため、メモリが解放されない場合があります。

要するに、プログラムがメモリを消費して解放する理由や時期を推測することは、多くの場合絶望的な試みです (もちろんそれがあなたのコードでない限り)。

複数のスタイルシートを次々にロードしようとしましたか? ブラウザがメモリを返さなかったとしても、同じプールを再利用するため、合計メモリ使用量が実際には増加しないことがあります。

于 2010-05-03T08:46:07.000 に答える