1

タイムラインを開始してChromeに読み込んだページがありますが、5秒後に3つのスパイクが表示されます。7秒後、ページが読み込まれ、安定します。Chromeはメモリを割り当てたようですが、ガベージコレクションは行いませんでした。

11秒近く(画像1に黒いマークが付いています)に、タイムラインでガベージコレクトを押すと、すべてのメモリが3MBまで解放されているのがわかります。メモリが3MBに下がった後、私のページは正しく機能します。

私の目標は、メモリリークを見つけることです(もしあれば)。しかし、ガベージコレクションの後、メモリはダウンし、それでも正しく実行されます。

  1. ページがロードされた後にガベージコレクションを強制する方法はありますか?モバイルデバイスでメモリが自動的に解放されるようにするには?
  2. 画像2では、これらの名前は何ですか?それらは私のライブラリ内で使用されているようには見えません(私のライブラリの名前はWebAtomsです)ので、無視できますか?
  3. 私のライブラリWebAtomsには、黄色で表示されるオブジェクトがほとんどありません。これはどういう意味ですか(画像3)。
  4. これらのプロファイル/タイムラインを理解する方法とそれらが何を意味するかについてのチュートリアルまたは詳細な分析はありますか?
  5. メモリリークに関する情報を取得する簡単な方法はありますか?

画像1

ここに画像の説明を入力してください

画像2

ここに画像の説明を入力してください

画像3 ここに画像の説明を入力してください

4

1 に答える 1

0

javascript でガベージ コレクションを制御することはできません。プロパティを削除したり、null 値を設定して GC をヒントにしたりできます。

ほとんどのブラウザには独自の JavaScript VM があるため、ガベージ コレクションの処理はブラウザによって異なります。そのため、Chrome に当てはまることは、ネイティブのモバイル ブラウザーには当てはまりません。

コードを最適化する方法については、コードが何であるかによって異なります。

そのすべての混乱を使用する方法に関するいくつかのヒントが必要ですか?

https://developers.google.com/chrome-developer-tools/docs/heap-profiling

于 2012-07-16T12:04:44.543 に答える