【Unity】Profilingツール比較!
プロファイリングツールには、Unity標準ツールからAndroidやiOSのネイティブツールまで
さまざまな選択肢があります。
本記事では、以下のツールを簡単な概要とともに紹介します。
1. Unity Profiler
2. Unity Memory Profiler
3. Unity Frame Debugger
4. Android Studio Profiler
5. Android GPU Inspector
6. Xcode Instruments
7. RenderDoc
Unityのプロファイリングツール
1 Unity Profiler
概要:
Unityアプリ全体のパフォーマンスをリアルタイムで監視できるUnity標準のツール。
-
できること:
- スクリプトのメソッド単位で、処理にかかる時間の計測
- GC(ガベージコレクション)の発生頻度や実行時間
- CPUとGPUの負荷状況
-
できないこと:
- デバイス固有の詳細な挙動(GPUの動作や電力消費など)
2 Unity Memory Profiler
Unity Memory Profilerの公式ドキュメント
概要:
メモリスナップショットを取得し、消費しているリソースの特定やメモリリークを特定が可能。
PackageManagerからインストールするが必要あります。
-
できること:
- メモリ使用リソースの特定
- メモリリークの可能性の発見
-
できないこと:
- 時間軸に沿ったメモリ使用量の変化確認(スナップショット分析が中心)
3 Unity Frame Debugger
概要:
フレーム単位で描画処理を追跡し、描画順序やバッチングの状態を確認可能。
-
できること:
- 描画順序の解析
- 不必要な描画の検出
- 特定オブジェクトの描画(ドローコール)の確認
-
できないこと:
- グラフィックメモリの解析
- Shaderの処理負荷の解析
ネイティブツール
4 Android Studio Profiler
Android Studio Profilerの公式ドキュメント
概要:
Android Studioに標準搭載されているパフォーマンス解析ツール。
-
できること:
- CPU、メモリ、ネットワーク、バッテリーの使用状況をリアルタイムで監視
- GPUのフレームタイミングや負荷の分析
-
できないこと:
- シェーダーや詳細なGPU処理の特定
5 Android GPU Inspector
Android GPU Inspectorの公式ドキュメント
概要:
AndroidデバイスでのGPUパフォーマンスを解析できるツール。
-
できること:
- GPU負荷の詳細な内訳(頂点処理、ピクセル処理など)
- フレームごとの負荷の推移確認
-
できないこと:
- CPUやUnityスクリプトの詳細な解析
6 Xcode Instruments
概要:
iOSデバイス専用のプロファイリングツール。時間軸に基づく解析が可能。
メモリやグラフィックなど用途に応じた様々な解析ツールが用意されている。
-
できること:
- 時間軸に基づくメモリ使用量やCPU負荷の推移
- GPUのフレームタイミングやレンダリング負荷
-
できないこと:
- Unity独自のスクリプトや詳細なメモリ情報の解析
7 RenderDoc
概要:
オープンソースのグラフィックデバッグツールで、マルチプラットフォームに対応。
-
できること:
- フレームごとの描画処理をキャプチャし詳細に解析
- シェーダーの状態や描画順序の確認
- バッチングやテクスチャ処理の分析
-
できないこと:
- Androidの場合、描画にかかる処理時間の計測は正しい値にならない
まとめ
プロファイリングツールはそれぞれ得意分野が異なります。
Unity標準ツールでアプリの挙動を大まかに把握しつつ、
必要に応じてネイティブツールを組み合わせることで、解決に繋がることもあります。
特にAndroid GPU InspectorやXcode Instrumentsは、
ネイティブ環境での詳細なグラフィック解析や
メモリモニタリングに強力になっています。
Discussion