過去ログ表示


過去ログ 159 を表示

トピック内全 21 記事中の 1 〜 10 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0] [1] [2]

(環境: Win2000/seamonkey1.0a)

Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4

Firefox1.5Beta1リリース(ナイトリーでは無いと言う意味)で、
複数のウィンドウでそれぞれ複数のタブでページを開き、
オフライン状態のまましばらく放置していたところ、
気が付くとメモリ使用量が300〜400MBになっていました.
今までに2回経験していて、1回目はアクティブにできないまま
そのままプロセスがお亡くなりになりましたが(たぶん400MB強)、
2回目は幸いにもウィンドウを1つ閉じたらメモリ使用量は
平常に戻りました(330MBくらいだったかな?).
この時、ウィンドウを1つ閉じただけで、使用量が100MBくらい
一気に減少しました.
搭載メモリが実質的には約220MBなので、フリーズしたのは
搭載メモリに対して使用量が多くなり過ぎたからだとも思いますが、
ウィンドウ1つで100MBを超える様なブラウジングをした覚えはありません.
放置する前は堅調に動いていましたので、放置している間に
メモリ使用量が膨張していった様な気がします.

こんな現象を実際に経験したり、報告されたのを見掛けた方はいらっしゃいますか?
今のところ、ブラウザウィンドウが1つだけの時は起こっていません.
DeerParkAlphaの2つのリリースでは、こんな事はなかった様にも思っています.

蛇足ですが、メモリキャッシュの関係かとも思って、途中で
browser.cache.memory.enableをfalseにしてそのまま使おうとしても、
ページが表示されなくなります(trueに戻すと正常に戻る).
変更して再起動すれば問題無く使えるのか、
browser.cache.memory.enableをfalseにするときちんと動かないのか...

(環境: Win2000/seamonkey1.0a)

補足ですが

> メモリ使用量が300〜400MB

というのは、Windows全体のメモリ使用量で
幾らか他のアプリケーションなどの分も含まれてます.
ただこの時はFirefox以外にメモリ大量消費型のアプリケーションは
動かしていませんでした.
firefox.exeの単独でのメモリ使用量となりますと、
私が普段使う状態でならこれから100MBを引いたくらいの様です.

(環境: Win2000/seamonkey1.0a)

2005/09/13(Tue) 14:09:07 編集(投稿者)

> browser.cache.memory.enableをfalseにしてそのまま使おうとしても、
> ページが表示されなくなります(trueに戻すと正常に戻る).

Bug-org 287501 じゃないかな。
( https://bugzilla.mozilla.org/show_bug.cgi?id=287501#c4 )

> 搭載メモリが実質的には約220MBなので、フリーズしたのは
> 搭載メモリに対して使用量が多くなり過ぎたからだとも思いますが、

「搭載メモリが実質的には約220MB」で、300〜400MBほどの仮想メモリーをFirefoxが使用したあたりで「フリーズ」だと、スワップファイルの拡張をしている間の「ほとんどフリーズ状態」、という感じがします。
メモリー128MBのパソコン/Win-2Kですが、デフォールトのスワップサイズで(256MBかな)、私の環境・使い方だと、Mozillaの仮想メモリー使用量が200MBあたりになると大体スワップの拡張に入ったので、少し増やしています(768MB、512MBとやってみて、今は384MBにしてたかな)

スワップファイルのサイズの初期値はどのくらいですか?
スワップファイルは、実際に拡張されていましたか?
スワップファイルのサイズの初期値を今より少し増やしてみると、どうなりますか?

> Firefox1.5Beta1リリース(ナイトリーでは無いと言う意味)で、
> 複数のウィンドウでそれぞれ複数のタブでページを開き、
> オフライン状態のまましばらく放置していたところ、
> 気が付くとメモリ使用量が300〜400MBになっていました.
> 今までに2回経験していて、1回目はアクティブにできないまま
> そのままプロセスがお亡くなりになりましたが(たぶん400MB強)、
> 2回目は幸いにもウィンドウを1つ閉じたらメモリ使用量は
> 平常に戻りました(330MBくらいだったかな?).
> この時、ウィンドウを1つ閉じただけで、使用量が100MBくらい
> 一気に減少しました.

> 放置する前は堅調に動いていましたので、放置している間に
> メモリ使用量が膨張していった様な気がします.

(Q1)「オフライン状態のまましばらく放置していた」というのは、その間Firefoxではなにも操作しなかったが他のアプリケーションを色々使っていたのですか?
それとも、スタンバイで停止していた、ということですか?

(Q2)ウィンドウを閉じたら100MBほど減った、というのは、ウィンドウのクローズでリソースの解放(Object.destroy)が正常に行われた証拠、だと思うんですが...
bfcacheがあるので、タブ・ウィンドウ当たりの仮想記憶使用量は増えているはずですけど。

(a)ウィンドウ一つで、「数多くのタブのオープン/開いたタブのほとんどをクローズ」、を繰り返した場合、
(b)複数のウィンドウで、「数多くのタブのオープン/開いたタブのほとんどをクローズ」、を繰り返した場合、
(c)複数のウィンドウで、「数多くのタブのオープン/開いたタブのほとんどをクローズ」、を繰り返し、最後に一つのウィンドウを開き、以前に開いたウィンドウを全て閉じた場合、
などにおいて、
タスクマネージャーで、firefox.exeのメモリー使用量(実メモリーと仮想メモリーの両方)を見たとき、
なにをやっても仮想メモリー使用量がほとんど減らず、無制限に増えていく、というような状態なのですか?
あるところまでは増えていっても、それ以降は繰り返してもそんなには増えない、というような感じではないですか。
また、タブのクローズでは減らなくても、ウィンドウを閉じればかなりまとまって減る(100MB減った、とおっしゃっていますよね)、というような感じではないですか?

(Q3)なにか機能拡張をいれてませんか?
サイトの自動チェックを行うような拡張が入っていると、タブを数多く開いていくのと似たようなbfcacheの使われ方になって、「放置している間でもメモリ使用量が膨張」、なども考えられます。
機能拡張が無い状態だと、仮想メモリーの増え方がかなり小さくなる、というようなことはないですか?

(環境: Win2000/その他)

自分も1.5で直っているといわれていたメモリリークの問題が直っていない気がします
タブを使用しブラウジングを行っているとFirefoxプロセスの消費メモリがどんどん増えて
タブを閉じたりウインドウを減らしても、結局はブラウザを終了しない限りメモリが開放されません。
環境はWin2K+Firefox1.5βです

(環境: Win2000/seamonkey1.0a)

ブラウザを終了してメモリ消費が元に戻るなら、メモリーリークではないのでは?

(環境: Win2000/seamonkey1.0a)

> 搭載メモリが実質的には約220MBなので、フリーズしたのは
> 搭載メモリに対して使用量が多くなり過ぎたからだとも思いますが、

身も蓋もないですが、物理メモリ220MBというのは少し少なすぎますね。bfcacheは切っておいた方が良いのではないでしょうか? Operaと同じでbfcacheによる戻る、進むの高速化というのは、表示結果をそのままメモリ上に置いておく、というものなので、速度を得る代わりにメモり消費量が犠牲になっています。それでなくてもMozilla系はメモリをよく使うので。

> ウィンドウ1つで100MBを超える様なブラウジングをした覚えはありません.
ソースを見ていても、ひとつのページを表示するためにどれだけのメモリが確保・解放されているか追い切れないのですが(そもそも、どこが実行されているのかも分からない)、どうしてこういう話が出てくるのでしょうか?

> 放置する前は堅調に動いていましたので、放置している間に
> メモリ使用量が膨張していった様な気がします.
放置というのが気になりますが、タイマーを使うような処理は走っていませんでしたか? アニメーションGIFとか、各種プラグイン、キャレット等。

(環境: Win2000/seamonkey1.0a)

No24931に返信(tyさんの記事)
> ブラウザを終了してメモリ消費が元に戻るなら、メモリーリークではないのでは?Win2000/seamonkey1.0a

どうなんでしょうね。OSの動作って不勉強でよく分かってないですが、プロセスごとにメモリ空間を分割しているので、プロセス終了時にはリークしていたメモリ空間も破棄できそうな気もします。

ただ、元コメントの
> タブを使用しブラウジングを行っているとFirefoxプロセスの消費メモリがどんどん増えて
> タブを閉じたりウインドウを減らしても、結局はブラウザを終了しない限りメモリが開放されません。
は、ウインドウやタブを閉じても、OSがFirefoxへのメモリ割当量を変更していない、というだけの証明にしかならず、リークしている根拠にはなりませんね。

どうして、メモリリークってこう、言葉だけが有名なんでしょうか?

(環境: Win2000/seamonkey1.0a)

2005/09/14(Wed) 00:35:24 編集(投稿者)

オフトピですが、ちょっと実験

1) 23.344KB Firefox起動(Homeでhttp://bugzilla.mozilla.gr.jp/を読み込み)
2) 23.396KB Ctrl+Tで新しいタブを作成
3) 24.472KB 新しいタブに別のページを読み込み(最近更新された未解決バグ)
4) 24.256KB 二つめのタブを消去
5) 24.256KB Ctrl+Tで新しいタブを作成
6) 24.328KB 新しいタブに別のページを読み込み(最近更新された解決済みバグ)

4で3に比べてメモり使用量が若干しか減っていなくて、1に比べると900KBほどリークしているかのように見えます。しかし、注目して欲しいのは5です。新しいタブを開いたのに1->2と同様のメモリ増加は発生していません。これは、Firefoxが新たにメモりを確保しようとした時に以前解放されていたメモリ空間(これは外部から見ればそのプロセスのメモリ空間)を再度割り当てたためです。

つまり、
・アプリが確保しているメモリ量 == プロセスに割り当てられているメモリ量
とは言えないことがこれだけの単純なテストで分かります。

ちなみに、6で3と同じページを読み込んでも同じ消費量にならないことが多々あると思います。これはリークの可能性も否定はできませんが、それよりも、実際にページを読み込ませるために行ったアクションがこのテスト項目の見た目以外に発生しているためと考える方が自然です。(Historyも変化してますし、キャッシュも変化してますし、通信時に全く同じ処理を通ったのかとか分かりませんよね?)

(環境: WinXP SP2/seamonkey1.0a)

> オフライン状態のまましばらく放置していたところ、

オフライン状態でメモリ増加する現象、これは今でも再現しますか?
しばらく とは時間にしてどの程度でしょうか?

> 放置する前は堅調に動いていましたので、放置している間に
> メモリ使用量が膨張していった様な気がします.

ここはバグジラでは無いのですが、出来るだけ推測でなく、ユーザー操作とFirefoxの現象を書いて下さいね。(^_^)/
例えばこんな感じ。
1.「Firefox1.5Beta1で、メモリ使用量が膨張したりしませんか?」のALLだけをタブで開いて、他のタブを一つだけにする。
2.ツールーオプションープライバシーーキャッシュ、ここでキャッシュクリア。
3.このときのタスクマネージャーでみると75Mもあります。
このときに5分待ってメモリリークは私の所では見あたりません。

> ウィンドウ1つで100MBを超える様なブラウジングをした覚えはありません.

推測ですね。1−3の上記の動作でここだけでも75M、起動しただけでも(機能拡張てんこ盛りですが(笑))52Mもあります。
ここはテキストが多く、画像も少なく、や動画はありません。また、下記の単純なテキストサイトではメモリリークって起こっていないと思うんですけどね。(私の所では。)
http://www.asahi-net.or.jp/~FV6N-TNSK/gates/column254.html
具体的なURLを教えて頂かないと不具合は見つからないかもしれません。むずかしー。

 メモリリークって開発言語ツールのデバッカーじゃないと突き止められないのではないのでしょうか?ユーザーが操作しない、かつ、タスクマネージャーでメモリ増加=メモリリークでいいの?>詳しい人。

Re[3]: [オフトピ] メモリリークって?
(#24970) このトピック中10番目の投稿
(環境: Win2000/seamonkey1.0a)

2005/09/14(Wed) 12:09:13 編集(投稿者)

オフトピですが...

> ブラウザを終了してメモリ消費が元に戻るなら、メモリーリークではないのでは?

IT用語辞典 e-Wordsの場合
( http://e-words.jp/w/E383A1E383A2E383AAE383AAE383BCE382AF.html )
>メモリリーク 【memory leak】
> コンピュータの動作中に、使用可能なメモリ容量がだんだん減っていく現象。
> OSやアプリケーションソフトが処理のために占有したメモリ領域を、なんらかの理由で開放しないまま放置してしまうために起きる。
> 多くの場合、OSのメモリ管理方法に問題があったり、アプリケーションソフトに不具合(バグ)が残っていたりすることが原因である。
> メモリリークにより利用可能なメモリ領域が減少すると、システムの性能が低下したり、不安定になったりする。
> これを解消するには、システムを再起動する必要がある。

Webopedia.com の場合
( http://www.webopedia.com/TERM/M/memory_leak.html )
>memory leak
> A bug in a program that prevents it from freeing up memory that it no longer needs.
> As a result, the program grabs more and more memory until it finally crashes because there is no more memory left.

「IT用語辞典 e-Words」のほうは、仮想記憶なし・プロセスによる分離なしの、MS DOS時代的な言い方、って感じですね。
今は、仮想記憶あり・プロセスによる分離あり、とか、大きなアプリケーションではアプリケーション内でのメモリー管理が一般的になっている、などを反映し、
Webopedia.com 的な「記憶領域の解放のし忘れ」全般を指す使われ方になっているのだと思います。

Webopedia.com 的な意味での「メモリリーク」という場合には、
実メモリーの話なのか仮想メモリーの話なのかの区別と、アプリケーションが確保したメモリー領域内でのリソースの解放のし忘れなのか、OSへのメモリー返却のし忘れなのかの区別は、最低限必要であり、
その上に、「解放し忘れた」という確実な証拠が無い段階では、
「解放し忘れているとしか考えられない」という根拠になる現象・データなしでは「メモリリークがあるのでは?」とは言えないはずなのですが、
最近は、どこかに表示された「メモリー使用量」という数字が、「自分が思っているよりも」大きい(大きくなった)、
という場合に、「メモリリークだ!」とおっしゃる方が増えて来たように感じます。

「誰が忘れた?」という点も、Mozillaファミリーについて言う場合は非常に大事なのですが、一切気にしない方も多いようです。
「Mozillaファミリーのメモリーリーク?」というのならば、上記の証拠に加え、最低限「機能拡張なしの状況でもメモリーリークと疑うに足る現象が起こり同じようなデータが得られた」という証拠が必要です。

拡張機能などでは、リソースの解放(Object.destroyなど)については無頓着なものが多いかもしれません。

以前「Tab Browser Extentions」のケースでわかったことなのですが、
機能拡張が作ったオブジェクトについて、ウィンドウやタブに関係するオブジェクトである、ということで、
タブ・あるいはウィンドウ単位のリソースで、ウィンドウやタブを閉じた時には自動的にObject.destroyされる、あるいは、解放される、と思い込み勝ちなのに、
実際にはMozillaがタブやウィンドウを閉じた時点では自動的に解放してくれないオブジェクトがあることが判明しました。
それらについては、拡張側できちんとObject.destryを発行する必要がありました。

TBEの場合、この問題についてはかなり以前に修正が済んでいます。
しかし、このような注意点を記述した資料もないですし、
どのようなオブジェクト・リソースが自動的に解放され、どのようなオブジェクト・リソースが自動的には解放されない、かなどを記述した資料もないですし、
他の機能拡張も昔のTBEと同じような問題(Object.destryをしない)を抱えている可能性を、否定できません。


[ 次のトピック内容10件 ]
このトピックの全ページ / [0] [1] [2]

返信不可


- Child Tree -