メインコンテンツまでスキップ

0_4_2_Profiler

(外部サイト)【Unity】Profilerの実用的な使い方!パフォーマンス改善に必要な部分だけサクッとまとめ

UnityのProfilerは、ゲームやアプリケーションのパフォーマンスを監視するツールで、CPU、GPU、メモリ、描画処理など、さまざまな側面を詳細に確認することができます。
これにより、ボトルネックやパフォーマンスの問題を特定し、最適化に役立てることができます。

ここでは、Profilerの使い方主要な項目について詳しく説明します。


Profilerの開き方

  1. Unityエディタの上部メニューから WindowAnalysisProfiler を選択します。
  2. Profiler ウィンドウが表示され、ゲームプレイ中のデータをリアルタイムで監視できます。

Profilerのタブと項目

1. CPU Usage

CPU Usageタブでは、CPUに関する情報を確認できます。主にフレームごとの処理時間を確認することができます。

  • Timeline: フレームの詳細な実行内容を表示します。実行中の処理がタイムラインで表示され、どの処理が長時間かかっているかがわかります。

    • 緑色のバーが各フレームの時間を示し、各プロセスがどれだけのCPU時間を消費しているかを見ることができます。
  • スクリプト: ゲームで実行しているスクリプト(MonoBehaviourUpdate メソッドなど)がどれだけ時間を消費しているかを確認できます。スクリプトが時間を消費している場合は、最適化が必要です。

  • Rendering: 描画に関連する処理がどれだけ時間を消費しているかを確認できます。

  • GC (Garbage Collection): ガベージコレクションが発生しているタイミングとその処理時間を確認できます。頻繁なGCはパフォーマンスを低下させる原因となるため、これを減らすことが最適化のポイントです。


2. Memory

メモリ使用状況を表示します。どのリソースがどれくらいのメモリを使用しているかを把握することができます。

  • Total Reserved Memory: Unityが予約したメモリの合計サイズを示します。
  • Used Memory: 実際に使用されているメモリの量を示します。
  • Textures, Meshes, Shaders, Audio など、各リソースがどれだけメモリを消費しているかを個別に確認できます。

メモリリークや過剰なメモリ使用を防ぐために、どのリソースがメモリを大量に使用しているかを特定し、最適化を検討することが重要です。


3. Rendering

描画に関する情報を表示します。このタブでは、フレームごとのレンダリングのパフォーマンスを確認できます。

  • Draw Calls: 描画にかかる呼び出しの回数です。多すぎる描画呼び出しはパフォーマンスを低下させます。
  • Triangles: 描画される三角形の数。多くの三角形を描画する場合、パフォーマンスに影響が出る可能性があります。
  • Batches: 同じ状態のオブジェクトを一度に描画するために、どれだけバッチ処理を行っているかを示します。描画バッチ数が多いと効率が悪くなります。

4. GPU Usage

GPUの使用状況を表示します。このタブでは、GPUの処理にどれだけ負荷がかかっているかを監視します。

  • GPU Timing: GPUがどれだけの時間をかけて処理を行ったかを表示します。
  • GPU Memory: GPUが使用しているメモリの量を示します。特にテクスチャやシェーダーが影響を与えることが多いです。

5. Physics

物理演算に関連する情報を表示します。ゲームにおける物理的な処理がパフォーマンスに与える影響を把握できます。

  • Simulated: シミュレーションにかかる時間を示します。
  • Contacts: 衝突判定や接触にかかる時間を表示します。多すぎる場合は最適化が必要です。

6. Network

ネットワークに関連する情報を表示します。オンラインゲームやネットワーク通信がどれだけのパフォーマンスを消費しているかを確認できます。

  • Incoming/Outgoing Data: 受信・送信されたデータの量を確認できます。
  • Ping: レイテンシ(遅延)を監視できます。

7. UI

UIに関するパフォーマンスを監視します。UI要素の描画にかかる負荷を確認することができます。

  • Canvas: キャンバスに関連する処理時間を監視します。キャンバスの描画や再描画が多すぎるとパフォーマンスが低下します。





Profilerの使い方のコツ

1. フレームレートの確認

  • FPS(フレームレート)を上部に表示して、ゲームが1秒あたり何フレームを描画しているかを確認します。目標FPS(通常は60FPS)が達成されているかを確認できます。

2. 重要なメトリックの監視

  • パフォーマンスが低下している場合、最初に確認すべき項目は CPU UsageRendering です。どこでボトルネックが発生しているかを特定するために、これらの項目を集中的にチェックします。

3. スナップショット機能

  • Profiler ではスナップショットを保存して、ゲームの特定の時間帯のパフォーマンスデータを後から確認できます。これにより、実行中のゲームの挙動とパフォーマンスの詳細を保存できます。

4. カスタムプロファイリング

  • Profiler.BeginSample()Profiler.EndSample() を使用して、カスタムコードブロックのパフォーマンスを計測することができます。特定の関数やメソッドがどれだけリソースを消費しているかを詳細にチェックできます。

まとめ

UnityのProfilerは、ゲームのパフォーマンス問題を特定し、最適化するために非常に強力なツールです。
CPU、GPU、メモリ、描画、物理演算など、さまざまな側面を監視することができ、ボトルネックを特定して最適化を行うために利用できます。
パフォーマンス向上を目指すには、Profilerを使ってリアルタイムでデータを監視し、どこに問題があるのかを明確に把握することが必要になるでしょう。