InstrumentsにMetal System Traceというテンプレートがあります。
これを選択してアプリを起動し、しばらく操作して終了すると、次のように解析結果が出てきます。
Metal System Traceテンプレートは次の5つのInstrumentで構成されており、次のような処理の負荷を計測します。
- Metal Application Instrument - コマンドバッファの作成やコマンド完了時に呼ばれるコールバックの処理
- Graphics Driver Activity Instrument - GPUへのコマンドバッファのスケジューリングやGPUへの送信イベント
- GPU Hardware Instrument - 頂点シェーダ、フラグメントシェーダ、コンピュートシェーダといったGPUで処理されるプログラムの処理
- Displayed Surfaces Instrument - ディスプレイへの描画処理
- Time Profiler Instrument - タイムプロファイラ
画面にも上からこの順で表示されます。上の2つがCPU側の処理で、3つ目がGPU側での処理、4つ目がディスプレイへの描画を示すことから、CPU→GPU→ディスプレイへの一連の描画の流れを上から下に向かってビジュアルで把握することができます。
詳細は「Instruments User Guide」をご参照ください。またWWDC 2015の「Metal Performance Optimization Techniques」というセッションではデモを交えてMetal System Traceを使ったデバッグ・最適化方法が解説されています。
関連情報
-
Metalのデバッグまとめ(随時更新) - Qiita
- Metalのデバッグに関連する機能やツールの使い方をまとめた記事
-
Metal入門 - shu223 - BOOTH
- 日本語では初のMetal解説書