Memory Profiler モジュールは、Profiler ウィンドウ の上部にあるチャートにメモリーデータを表示します。ウィンドウの下半分の詳細ペインには、各フレームで Unity がメモリを割り当てた場所の内訳を表示します。
Memory Profiler モジュールのチャートには、アプリケーションがメモリをどこで消費しているかに関する詳細情報を表示するカテゴリがあります。
| Chart | 説明 |
|---|---|
| Total Used Memory | アプリケーションが使用したメモリの合計。 |
| Texture Memory | アプリケーションの テクスチャ が使用したメモリ量。 |
| Mesh Memory | アプリケーションの メッシュ が使用したメモリ量。 |
| Material Count | アプリケーションの マテリアル インスタンスの数。 |
| Object Count | アプリケーションのネイティブのオブジェクトのインスタンス数 |
| GC Used Memory | ガベージコレクションヒープ が使用したメモリ量。 |
| GC Allocated In Frame | ガベージコレクションヒープでフレームごとに割り当てられたメモリ量。 |
Memory モジュールを選択すると、アプリケーションで Unity がメモリを割り当てた場所の内訳が詳細ペインに表示されます。ドロップダウンには以下のオプションがあります。
| View | 説明 |
|---|---|
| 簡易ビュー | アプリケーションで Unity がメモリを割り当てた場所の基本的な概要を表示します。 |
| Detailed ビュー | 重要:このビューは廃止される予定です。代わりに Memory Profiler パッケージ を使用してください。Memory Profiler パッケージがインストールされている場合は、詳細ペインの上部にある Open Memory Profiler ボタンを選択して Memory Profiler ウィンドウを開きます。 |
Simple ビューには、アプリケーションで使用中として OS がレポートするメモリ量が表示されます。この値は、System Used Memory プロファイラーカウンター に基づいています。OS からアプリケーションの合計メモリサイズを取得できるプラットフォームでは、System Memory Usage は 0 を超え、タスクマネージャーでも同じサイズです。
Unity は OS へのメモリ要求が頻繁になりすぎないように、割り当て用のメモリプールを確保します。Profiler モジュールは、Unity が予約したメモリ量と、Profiler キャプチャ時に Unity が使用したメモリ量を、(In use / Reserved) として表示します。
以下のリファレンス表には、Simple ビューで使用できる統計が説明されています。対応する プロファイラーカウンター は、ProfilerRecorder API と Profiler モジュールエディタ で提供されており、カスタム Profiler モジュールに追加できます。
Total Committed Memory は、選択したフレームについて Unity の Memory Manager システムが追跡したメモリの総量を示します。
| 値 | 説明 |
|---|---|
| Tracked Memory (In use / Reserved) | Unity が使用して追跡したメモリの総量 (In use) と、Unity が追跡とプール割り当てのために予約したメモリの量 (Reserved)。 |
| Untracked Memory | Unity が使用したが認識していないメモリの総量を示します。追跡されないメモリの例は以下のとおりです。 - ネイティブプラグインまたは一部のドライバーによって割り当てられたメモリ - Mono または IL2CPP タイプのメタデータ - 実行ファイルコードと DLL ファイルが使用するメモリ 追跡されていないメモリ量の種類によっては、Memory Profiler パッケージ とネイティブプラットフォームプロバイダーが多くの情報を持っている場合があります。 |
注意Tracked Memory (In use / Reserved) 統計の同等 プロファイラーカウンター は、使用中メモリに対しては System Used Memory、予約メモリに対しては Total Reserved Memory です。
Unity がメモリを割り当てたサブシステムに基づいて Total Committed Memory を高レベルカテゴリに分けます。
すべてのメモリシステムが、プールを使用したり、使用メモリと予約メモリを区別したりするわけではありません。2 つの数値が表示される場合は、使用メモリ量と予約メモリ量です。使用量と予約量の単位 (B、MB、GB) が同じでない場合は、単位が表示されますが、それ以外の場合は省略されます。
| 値 | 説明 |
|---|---|
| Managed Heap | マネージコードが使用する使用ヒープサイズと合計ヒープサイズ。このメモリは ガベージコレクション の対象です。 |
| Graphics & Graphics Driver | ドライバーがテクスチャ、レンダーターゲット、シェーダー、メッシュデータに使用している推定メモリ量。 |
| オーディオ | オーディオシステムの推定メモリ使用量。 |
| Video | ビデオシステムの推定メモリ使用量。 |
| その他 | Unity が追跡するネイティブメモリを表示しますが、特定のカウンターではレポートされません。このカテゴリまたは他のカテゴリの構成の詳細は、Memory Profiler パッケージ を参照してください。 |
| プロファイラー | Profiler 機能が使用するメモリとシステムから予約するメモリ。 |
メモリを通常多く消費するアセットタイプ (テクスチャ、メッシュ、マテリアル、アニメーションクリップ) のオブジェクトインスタンスの量と、メモリ内でのその累積サイズ (アセット、ゲームオブジェクト、シーンオブジェクト) を表示します。
注意これらの統計はリリースプレイヤーでは使用できません。
| 値 | 説明 |
|---|---|
| テクスチャ | ロードされたテクスチャの総数と、それらが使用するメモリ量。 |
| メッシュ | ロードされたメッシュの総数と使用するメモリ量。 |
| マテリアル | ロードされたメッシュの総数と使用するメモリ量。 |
| アニメーションクリップ | ロードされたアニメーションクリップの総数と使用するメモリ量。 |
| Assets | ロードされたアセット総数。 |
| Game Objects | シーン内のゲームオブジェクトインスタンスの総数。 |
| シーンオブジェクト | 動的 UnityEngine.Object インスタンスの総数。この数には GameObject Count カウンター、コンポーネントの総数、シーン内でアセットではないものが含まれます。 |
| GC allocated in frame | 選択したフレーム内のマネージ割り当て量と、それらの合計サイズをバイト単位で表示します。 |
この設定を有効にすると、Total Committed Memory チャートと Total Memory Breakdown チャートが、選択したフレームのメモリ使用量にスケールされます。この設定を無効にすると、チャートはフレーム範囲内の総使用メモリ量にスケールされます。この設定は、メモリの総量または相対量がフレームごとにどのように変化するかを理解するのに役立ちます。