Profilerについて
ProfilerはRuntimeのパフォーマンス計測の操作と計測情報を表示します。
表示項目についての説明
Profilerを表示した際の情報について解説します。
※アプリケーションの動作環境によって取得できない値については「Not Supported」を表示します。
※アプリ起動後一度も計測されていない場合、値を「-」で表示します。
FPS
グラフは毎フレームの処理にかかった時間を表します。
要素名 | 表示情報 |
---|---|
Update | Update・LateUpdateにかかった時間です。 |
Rendering | 描画にかかった時間です。 |
Others | 上記を除いた時間です。 |
※UnityエディタのProfilerと同じ精度ではありません。CPU・GPUのボトルネックを特定するためにご利用ください。
グラフの下に表示する内容は以下のとおりです。
FPS値と経過時間
FPS値を横棒グラフで表します。
グラフの最大値は基本的にはTargetFrameRateを使用しますが、TargetFrameRateが-1の場合のみRefreshRateを使用します。
Max / Min / Avg
計測期間中の最大/最小/平均FPS値を表示します。
VSyncCount変更
ドロップダウンからVSyncCountを以下のように変更できます。
- Don't Sync
- Every V Blank
- Every Second V Blank
- Every Third V Blank
- Every Fourth V Blank
動作するプラットフォームについては、Unity公式ドキュメントを参照してください。
TargetFrameRate変更
ドロップダウンからTargetFrameRateを以下のように変更できます。
- Target Frame Rate Default
- Target Frame Rate 5
- Target Frame Rate 15
- Target Frame Rate 30
- Target Frame Rate 60
- Target Frame Rate 72
- Target Frame Rate 90
- Target Frame Rate 120
- Target Frame Rate 144
- Target Frame Rate 165
- Target Frame Rate 240
- Target Frame Rate 360
上記以外の値を指定した場合、指定した値を一時的にドロップダウンに表示します。
動作するプラットフォームについては、Unity公式ドキュメントを参照してください。
Memory
グラフは一定時間ごとの計測値の履歴を表します。
表示する情報は計測タイプごとに異なります。
計測タイプ | 表示情報 |
---|---|
Unity Memory | Unityが確保しているメモリの未使用量と使用量を表示します。 ※グラフの高さの合計がUnityが確保しているメモリ量となります。 |
Native Memory | ネイティブAPIで取得したメモリ使用量を表示します。 |
Mono Memory | マネージドヒープの未使用量と使用量を表示します。 ※グラフの高さの合計がマネージドヒープのメモリ量となります。 |
グラフの下に表示する内容は以下のとおりです。
メモリ使用量
メモリ使用量を横棒グラフで表します。
表示する情報は計測タイプごとに異なります。
計測タイプ | 要素名 | 表示情報 |
---|---|---|
Unity Memory | Allocated | Unityが確保しているメモリの現在の使用量を表示します。 |
Unity Memory | Reserved(Max) | Unityが確保したメモリ量の現在値と計測期間中の最大値を表示します。 |
Native Memory | Current | ネイティブAPIで取得した現在のメモリ使用量を表示します。 |
Native Memory | Total | 計測する最大メモリ容量を表示します。 NoaProfiler.TotalNativeMemoryMB より変更が可能で、既定では端末のRAM容量となります。 |
Mono Memory | MonoUsed | マネージドヒープの現在の使用量を表示します。 |
Mono Memory | MonoHeap(Max) | マネージドヒープの現在値と計測期間中の最大値を表示します。 |
Max / Min / Avg
計測期間中の最大/最小/平均メモリ使用量を表示します。
GC実行ボタン
[Force GC Collect]ボタンを押下することで強制的にガベージコレクションを実行します。
※[Force GC Collect]ボタンは GarbageCollector.GCMode でガベージコレクションが無効化されている場合は、押下することができません。
アセット破棄ボタン
[Unload Unused Assets]ボタンを押下することで使用していないアセットの破棄を実行します。
メモリ計測タイプ切り替え
ドロップダウンから計測タイプを切り替えられます。
計測タイプはアプリを再起動しても保持します。
Unity Memory
Unityが取得できるメモリ使用量を表示します。
デフォルトではこのタイプを選択しています。
Native Memory
Unityが取得できないネイティブ関連の値も含めた、より正確なメモリ使用量を表示します。
ブラウザアプリケーションでは動作しません。
また、AndroidのOSバージョン10以上の端末は処理コストの関係でデフォルトでは5分おきに最後に取得した値を反映します。
メモリ計測時間の間隔はADBコマンドで変更をかけることができます。
adb shell settings put global activity_manager_constants memory_info_throttle_time=1000
末尾の1000はミリ秒単位を指すため、この設定だと1秒間隔で取得できます。
現在の設定は以下のADBコマンドで確認できます。
adb shell dumpsys activity settings | grep memory
Mono Memory
マネージドヒープに関するメモリ使用量を表示します。
Monoビルドを行なった時のみ正確に動作し、それ以外では仮想値が用いられます。
Rendering
グラフは以下のいずれかの項目の毎フレームの計測値の履歴を表します。
項目の選択状態はアプリを再起動しても保持します。
要素名 | 表示情報 |
---|---|
SetPass Calls(Max) | 現在フレームでゲームオブジェクトのレンダリングに使用したシェーダーパスをUnityが切り替えた回数と、計測期間中の最大値を表示します。 |
Draw Calls(Max) | 現在フレームで送信されたドローコールの総数と、計測期間中の最大値を表示します。 |
Batches(Max) | 現在フレームで処理されたバッチの数と、計測期間中の最大値を表示します。 |
Triangles(Max) | 現在フレームで処理された三角形の数と、計測期間中の最大値を表示します。 |
Vertices(Max) | 現在フレームで処理された頂点の数と、計測期間中の最大値を表示します。 |
共通UI
計測ボタン
[● REC]ボタンを押下することで計測のオン・オフを切り替えることができます。アプリ初回起動時は計測状態です。
[● REC]ボタンが赤色の状態は計測中、白色は停止中を意味します。
※値が取得できない環境では計測ボタンはグレーアウトします。
計測中に計測を停止すると、最後に計測した値を保持します。
また計測状態はアプリを再起動しても保持します。
グラフ表示ボタン
[Graph]ボタンを押下することでグラフ表示のオン・オフを切り替えることができます。アプリ初回起動時はグラフ表示状態です。
[Graph]ボタンが緑色の状態はグラフ表示中、白色は非表示を意味します。
グラフ表示状態はアプリを再起動しても保持します。
オーバーレイについて
画面のUI構成
Profilerのオーバーレイはデフォルトでは以下のような情報を表示します。
表示内容の変更はメインビュー内の設定画面で行います。
設定画面
1.各機能毎の設定
これらの設定はアプリを再起動しても保持します。
a.表示選択
オンの場合は該当機能のオーバーレイを表示します。
b.Text
テキストで表示する情報量をSimple
かFull
で指定します。
設定毎の表示情報については以下の通りです。
機能名 | Simple の表示情報 | Full の表示情報 |
---|---|---|
FPS | 現在のFPS値を表示します。 | FPSの現在値、最大値、最小値、平均値、前フレームから経過した時間を表示します。 |
Memory | メインビューで選択した計測タイプの現在のメモリ使用量を表示します。 | メインビューで選択した計測タイプの複数の計測値を表示します。 |
Rendering | メインビューで選択した項目の現在値を表示します。 | 全ての項目の現在値と最大値を表示します。 |
c.Graph
オンの場合はオーバーレイにグラフを表示します。
Renderingの場合はメインビューで選択した項目のグラフを表示します。
2.その他の設定
これらの設定を変更した場合、アプリを再起動しても保持します。
値を保持していない場合はツールの設定方法で指定した値をデフォルトとして適用します。
要素名 | 表示情報 |
---|---|
Position | オーバーレイを配置する際の位置を指定します。 |
Scale | オーバーレイのサイズを0.5〜1.5の範囲で指定します。 |
Axis | FPS、Renderingなど複数のオーバーレイを並べる際の方向を指定します。 |
3.リセットボタン
[Reset]ボタンを押下することでProfilerのオーバーレイに関して保持している設定値を破棄し、デフォルト値を適用します。