2017-10-09 5 views
2

でネイティブとグラフィックスメモリの割り当てを見ることができ、どのように私は私は、Android Studioでのアプリのメモリをプロファイリングするとき、私はメモリのさまざまなカテゴリの消費量を見ることができますAndroidのメーカー3.0

enter image description here

が、私はJavaのヒープをダンプ(中央のボタン)、私はボタンの名前から期待されたヒープの割り当て、

enter image description here

のみを取得します。しかし、私は割り当て済みのchar配列とStringsを見ることができますが、最近のバージョンでは文字列のchar配列がネイティブヒープに移動され、Stringクラスはネイティブメソッドを介してのみアクセスできるため、このヒープダンプはネイティブヒープ。私は正しい?グラフィックヒープはどうですか?

+0

@Zoeなぜアンドロイドスタジオタグを削除したのですか?実際に私はASチームから誰かが説明を与えることを期待しました – LackOfKnowledge

+0

この質問は実際にAndroid Studioの一部であるツールに非常に特有です。有害な編集や些細な編集をしないようにしてください –

答えて

1

どのような手段でも正式なソースではありませんが、自分自身と他の人がJavaメモリの使用について説明しようとしましたhere。私が知っている限り(ARTやDavlikを使って作業する人はもっと明確な答えを得ることができます)、アプリケーション全体に単一のヒープしかありません。特定のグラフィックヒープはありません。

あなたがおそらくあなたに見せているAndroidスタジオは、グラフィック操作によって消費されているヒープの量です。スタック(緑)メモリセグメントが現在のコールスタックが消費しているものをどのように表示しているかと同様です。

enter image description here

:あなたがドロップダウンから、あなたのアプリケーション・ヒープを選択するために覚えておく必要があり、このビューを使用している場合は

enter image description here

:あなたは、セグメントを強調することで、これはあなたのコードに反映されているか見ることができます

ネイティブ& Javaセグメントは、SDK/Javaフレームワークを介して直接割り当てられたメモリの量と、基礎となる構造をネイティブにどれだけ占めているかを示します。 (彼らは、アプリ内であなたに別のメモリ領域を表示しない、それは混乱に見えることができます - 最後にあるリンクを参照してください)

enter image description here

Developer Documentationであるかを正確にプロファイラがあなたを見せているの最高の概要をSystem ImageとZygoteのヒープもあなたのものです。

1

「グラフィックス」メモリに詳しい人はいませんか?なぜ単純なアプリケーションで非常に多くのメモリを消費するのですか?

私は単純なアプリケーションを作成し、HomeActivityには1つのRecyclerViewしかありませんが、「グラフィックス」メモリは約60MB必要です。ここで

enter image description here

HomeActivityのスクリーンショットです。

enter image description here

関連する問題