〽️

【Unity】Profilingツール比較!

2024/11/17に公開

プロファイリングツールには、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 Profilerの公式ドキュメント

概要:
Unityアプリ全体のパフォーマンスをリアルタイムで監視できるUnity標準のツール。

  • できること:

    • スクリプトのメソッド単位で、処理にかかる時間の計測
    • GC(ガベージコレクション)の発生頻度や実行時間
    • CPUとGPUの負荷状況
  • できないこと:

    • デバイス固有の詳細な挙動(GPUの動作や電力消費など)

2 Unity Memory Profiler


Unity Memory Profilerの公式ドキュメント

概要:
メモリスナップショットを取得し、消費しているリソースの特定やメモリリークを特定が可能。
PackageManagerからインストールするが必要あります。

  • できること:

    • メモリ使用リソースの特定
    • メモリリークの可能性の発見
  • できないこと:

    • 時間軸に沿ったメモリ使用量の変化確認(スナップショット分析が中心)

3 Unity Frame Debugger


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


Xcode Instrumentsの公式ドキュメント

概要:
iOSデバイス専用のプロファイリングツール。時間軸に基づく解析が可能。
メモリやグラフィックなど用途に応じた様々な解析ツールが用意されている。

  • できること:

    • 時間軸に基づくメモリ使用量やCPU負荷の推移
    • GPUのフレームタイミングやレンダリング負荷
  • できないこと:

    • Unity独自のスクリプトや詳細なメモリ情報の解析

7 RenderDoc


RenderDocの公式サイト

概要:
オープンソースのグラフィックデバッグツールで、マルチプラットフォームに対応。

  • できること:

    • フレームごとの描画処理をキャプチャし詳細に解析
    • シェーダーの状態や描画順序の確認
    • バッチングやテクスチャ処理の分析
  • できないこと:

    • Androidの場合、描画にかかる処理時間の計測は正しい値にならない

まとめ

プロファイリングツールはそれぞれ得意分野が異なります。
Unity標準ツールでアプリの挙動を大まかに把握しつつ、
必要に応じてネイティブツールを組み合わせることで、解決に繋がることもあります。

特にAndroid GPU InspectorやXcode Instrumentsは、
ネイティブ環境での詳細なグラフィック解析や
メモリモニタリングに強力になっています。

Discussion