Rendering プロファイラー
Audio プロファイラー

Memory プロファイラー

アプリケーションが使用しているメモリを観察するには、2つの方法があります。これらは下のペインの上部左にあるドロップダウンボタンから選択することができます。

Simple (簡易) ビュー

Simple ビューでは、Unity 全体でメモリがどのように使用されているのか、フレームごとにリアルタイムの簡易な概要を表示します。

Unity は OS があまり頻繁にメモリを要求することを防ぐため、アロケーションのためにメモリプールを確保します。確保したメモリは Reserved として、使用されたメモリとともに表示されます。

表記には以下が含まれています。

  • Unity Unity のネイティブコードへのメモリ割り当て量
  • Mono 全体のヒープサイズとマネージドコードが使用しているヒープサイズ。このメモリはガベージコレクションされます。
  • GfxDriver ドライバが Texture、レンダリングのターゲット、Shader、Mesh データに使用している推定メモリ量
  • FMOD オーディオドライバが使用している推定メモリ量
  • Profiler プロファイラーデータに使用されているメモリ量

メモリプロファイラーが観察していない使用もあるため、その数字は、タスクマネージャーやアクティビティモニタと同じではありません。メモリプロファイラーの表示には複数のドライバに使用されているメモリや実行コードに使用されているメモリも含まれています。

メモリ統計はいくつかの最も一般的なアセット、または、オブジェクトタイプのを表示されています。統計には合計と使用メモリ量(メインメモリ/ビデオメモリ)を含まれています。

  • Textures (テクスチャ)
  • Meshes (メッシュ)
  • Materials (マテリアル)
  • Animations (アニメーション)
  • Audio (オーディオ)
  • Object Count (オブジェクト合計)

Object Count は作成されたすべてのオブジェクト数です。この数が時間とともに増加している場合、ゲームでオブジェクトを作り破棄していない事を意味します。

Detailed (詳細) ビュー

Detailed ビューにより、現在のステートのスナップショットをとることができます。Take Sample ボタンを使用して詳細なメモリ使用をキャプチャできます。このデータ取得には時間を要するため、Detailed ビューによりリアルタイムの詳細は得られません。サンプルを取得した後、Profiler ウィンドウはツリービューで更新され、さまざまなメモリ使用について確認することができます。

これにより個別のアセットおよびゲームオブジェクトによるメモリ使用量が表示されます。さらにオブジェクトがメモリを消費する理由も表示されます。表示される理由は次のいずれかとなります。

  • Assets ユーザーやネイティブコードから参照されているアセット
  • Built-in Resources Unity エディターリソースか、Unity デフォルトリソース
  • Not Saved DontSave とマークされたオブジェクト
  • Scene Memory ゲームオブジェクトとコンポーネント
  • Other 上記のどれにも当てはまらないオブジェクト

エディターの Project ビューまたは Scene ビューでオブジェクトを見るには、リスト内のオブジェクトをクリックします。

エディターでプロファイルを使用する場合、メモリプロファイラーで表示されるすべての値はエディターでのメモリ使用量を示します。エディターでのメモリ使用量は一般的にプレイヤーで実行しているときよりも大きくなります。なぜなら、Unity エディターの使用には追加のメモリが必要だからです。アプリケーションに関するより正確な数字とメモリ使用を確認するためには、実行中のプレイヤーに Profiler を接続してください。これにより、ターゲットデバイスの実際の使用が取得できます。

System.ExecutableAndDlls の元に報告されるメモリは読み取り専用のメモリなので、OS は必要に応じてこれらのページを廃棄し、あとでファイルシステムから再読込することがあります。それにより、メモリ使用が減少し、OS がアプリケーションの終了を行うことを防ぎます。また、これらのページの一部は同じフレームワークを使用する他のアプリケーションと共有される場合があります。

Rendering プロファイラー
Audio プロファイラー