Unity には、パフォーマンスに関連するさまざまなツールと API が用意されています。これらのツールを使用して、パフォーマンス指標を測定してモニタリングし、ディスプレイのリフレッシュ レートを指定して、シーンがフレームごとにレンダリングされる方法を分析します。
パフォーマンス指標を測定してモニタリングする
Unity OpenXR: Android XR パッケージでは、アプリのモニタリングと最適化に使用できる包括的なパフォーマンス データが提供されます。
これらの指標には、パフォーマンス指標 API を使用してアクセスできます。
利点
- メモリ使用量、CPU、GPU のパフォーマンスをリアルタイムでモニタリングします。
- コンポジタ レイヤとランタイム レイヤのシステム統計情報。
- 最適化の変更による影響を測定します。
最適な結果を得るには、アプリの作業中やパフォーマンスの調整中に、これらの指標を積極的にモニタリングします。
AndroidXRPerformanceMetrics androidXRPerformanceMetrics = OpenXRSettings.Instance.GetFeature<AndroidXRPerformanceMetrics>();
string values = "";
if (m_Display != null && androidXRPerformanceMetrics != null && androidXRPerformanceMetrics.supportedMetricPaths != null)
foreach (var metric in androidXRPerformanceMetrics.supportedMetricPaths)
{
float stat;
XRStats.TryGetStat(m_Display, metric, out stat);
values += string.Format("{0}: {1:F2}\n", metric, stat);
}
ディスプレイのリフレッシュ レートを指定する
ディスプレイ リフレッシュ レートを使用すると、アプリはランタイムから高いフレームレートまたは低いフレームレートをリクエストできます。システムは、このリクエストを尊重しようとします。
利点
- シーンの複雑さに基づいて更新頻度を調整します。
- 明るいシーンでの消費電力を最適化します。
- アプリの需要に動的に適応します。
この機能を有効にする
Unity API を使用して XR_FB_display_refresh_rate
拡張機能にアクセスします。
72 fps、90 fps、120 fps などのフレームレートをリクエストできます。ハードウェアが対応可能で、温度条件が許容範囲内であれば、システムはリクエストされたレートに切り替わります。
Unity のフレーム デバッガを有効にする
フレーム デバッガは、シーンがフレームごとにどのようにレンダリングされるかを分析するための Unity の組み込みツールです。このツールは、ドローコールのシーケンスを表示し、ステップ実行してレンダリングの動作を理解できるようにします。
利点
- レンダリングのボトルネックと予期しないドローコールを特定します。
- SRP Batcher が正しく動作していることを確認します(「RenderLoopNewBatcher」エントリを探します)。
- GPU 常駐ドロワーのバッチ処理を確認します(「Hybrid Batch Group」エントリを探します)。
- レンダリング オペレーションの順序を理解する。
この機能を有効にする
- Unity のメインメニューで、[Window] > [Analysis] > [Frame Debugger] をクリックします。
- [有効にする] をクリックして、フレームデータのキャプチャを開始します。
- ドローコールをステップ実行して、何がいつレンダリングされているかを確認します。