Android Studio HPROFの参照ツリー要素の色は何を表していますか?




android studio hprof diff (2)

  • this$0 (赤いもの) - LeakActivityへの参照を保持する変数LeakActivity 。 あなたの場合、これは囲むクラスへの暗黙の参照です。 これは、Javaの匿名の内部クラスの性質であり、外部(囲む)クラスへの参照を暗黙的に保持します。

  • 青のクラス名 - this$0変数の場所です。

だから本質的には、 LeakActivityLeakAsyncTask内で匿名の内部クラスとして実装されているLeakAsyncTaskから暗黙的に参照されるため、 LeakAsyncTaskが終了するまでLeakAsyncTaskガベージコレクションできません。 あなたのアプリにとって本当に危険なアクティビティリークが発生する可能性があります

誰かが、AndroidスタジオのHPROFビューアで、太字、青、赤のいずれかの位置が正確に何を意味するのか教えていただけますか?

私はリファレンスツリーパネルで約1つ質問します。

宜しくお願いします。


私はこれについてのドキュメントを見つけることができませんが、いくつかのヒープダンプを見て、これは彼らがそうであるようです:

  • blue - 右上のペインで選択されたインスタンスの最も近いdominator者。
  • bold - GCルート。例えば、収集されるべきではない深さ0のインスタンス。 この回答にはGCルートが何であるかの詳細があり、 この回答にはルーツであるものの種類がリストされています。
  • red - 私は実際にこれらを見ていないが、私はそれがガベージコレクションされるべきインスタンスを示していると推測するだろうが、まだされていない。

繰り返しますが、ここでの免責事項は、これがすべて間違っている可能性があり、実際にこれに関する正式な情報を見つけることはできませんが、ヒーププロファイラーを使用する際の私の観察と一致しているようです。





hprof