こんにちは、エンジニアのオオバです。

とあるパフォーマンスを検証するために、
CPU・GPU使用率と1フレームにかかる時間を計測するために
Xcodeで実機プロファイリングした時に起きた問題です。

XcodeのCPUフレームタイムが表示されないときの設定項目_0

キャプチャの通り、GPUのフレームタイムは表示されますが、CPUの方は0sのまま。

諸々調査した結果、Unityビルド時のGraphicsAPIの設定が原因でした。

プラグインの関係で、このようにOpenGLES2に設定しています。

XcodeのCPUフレームタイムが表示されないときの設定項目_1

この状態ではCPUのフレームタイムは表示されません。

上記どちらか一方の修正で直ります。
またOpenGLES3も選べますが駄目でした。

要は現状のXcodeのバージョンではMetal専用機能のようです。

そもそもなぜフレームタイムを知りたいのか?

なぜCPU・GPUのフレームタイムをチェックするかというと、かかる時間に格差がある場合fpsの低下につながるからです。

1フレーム描画するためにはCPUの処理が完了してからGPUの処理に移ります。

XcodeのCPUフレームタイムが表示されないときの設定項目_4

仮にGPUの処理時間が大幅にCPUを上回っていたら、CPUはGPUの処理が終わるのを待たなければならないため、fpsが下がりカクツいてしまいます。

できるだけCPUとGPUにかかる時間を同じくらいになるように心がけたいところです。

オススメ記事
検証環境