5

私は5秒ごとに重いJavaScriptを実行し、タスクマネージャーはメモリ使用量の絶え間ない増加を示しています。ただし、ヒープスナップショットはそうではありません。スクリプトを停止すると、約30分2分後にメモリがクリアされます。

アップデート:

スクリプトを長時間放置すると、ブラウザがクラッシュするまでメモリが増加します。また、Chrome開発ツールのタイムラインテストを実行しようとしましたが、ヒープスナップショットと同様に、メモリ使用量の増加も表示されません。ある種の漏れだと思いますが、何が漏れているのかわかりません。

以前のChromeバージョンをインストールできないため、確認できないもう1つの点は、以前のバージョン(<24 Chromeバージョン)でこれが発生したことを覚えていないことです。また、IE10はメモリを増やさずにこのテストを実行します。これは新しいChromeの問題でしょうか?

4

1 に答える 1

3

Chromeデベロッパーツールを参照しているとすると、ヒープスナップショットプロファイラーはスナップショットの前にガベージコレクターを実行するため、ヒープスナップショットのメモリの増加は見られない可能性があります。

特にアクティブな処理中にメモリ使用量が増加するのはごく普通のことです。ガベージコレクターが不必要に実行されることはありません。マシンに予備のメモリがある場合は、予約済みのメモリが大きくなります。空きメモリの制限をプッシュし始めると、コレクターが実行されます。これが発生することを許可して、発生するかどうかを確認する必要があります。

アイドル期間後にメモリが元のレベルに低下したことを報告すると、メモリリークがなく、ガベージコレクタが割り当てられたすべてのヒープオブジェクトを正しく収集できることを示します。

ただし、IANAGE(私はGoogleのエンジニアではありません)。背景については、ヒーププロファイラーのドキュメントと関連するMemory101ページを読むことをお勧めします。

于 2013-01-22T20:16:26.460 に答える