【Swift/XCode】Instrumentsインストゥルメンツで詳細 FPSを確認する!

Mac

XCode26にしてからデバッグのFPSの反映にタイムラグが発生してしまい、、、
FPSが正常でないのか心配になりチェックを!

InstrumentsでFPSチェック

Instruments自体は古くからある強力なツールですが、Xcodeの通常の「実行ボタン(三角マーク)」で動かすデバッグとは、目的も仕組みも根本的に異なります。

仕組みの違いを簡単に整理すると、以下のようになります。

1. 普通のデバッグ(Run)

  • 目的: バグを見つける、クラッシュ箇所を特定する、print文で値を確認する。
  • 仕組み: デバッガ(LLDB)がアプリのプロセスに常に密着して、メモリの中身やスレッドの状態を「監視」します。
  • デメリット: 監視のオーバーヘッドが大きく、アプリの本来のパフォーマンス(FPSなど)が落ちたり、表示が遅れたりすることがよくあります。

2. Instruments(Profile)

  • 目的: パフォーマンス(FPS、メモリ使用量、CPU負荷、バッテリー消費)を正確に「測定」する。
  • 仕組み: プロセスを監視するのではなく、OSレベルでアプリの動きを「サンプリング(記録)」します。
  • メリット: アプリにかかる負荷(オーバーヘッド)が最小限に抑えられるため、製品版に近い、より正確な数値が得られます。

使い分けのコツ

開発中の『umiカメラ』の場合、以下のように使い分けるとスムーズです。

場面使う機能理由
機能を作っている時Run (Debug)エラーが起きた時に止まってほしいし、ログを見たいから。
FPS設定を検証する時Profile (Instruments)デバッガのせいでFPSが落ちるのを防ぎ、正確な値を知るため。
動きがカクつく時Profile (Instruments)どの処理(フィルター処理など)がCPUを食っているか特定するため。

豆知識:Xcode 26 での変化

Xcode 26からは、通常のデバッグ(Run)中でも「Debug Gauges」にかなりリッチな情報が出るようになりました。しかし、その「リッチさ」ゆえに、Intel Mac環境ではデバッガ自身の処理が追いつかず、今回のような表示のタイムラグが発生しやすくなっています。

なので、**「数値が怪しいな?と思ったら即 Profile(Instruments)」**という今の判断は、エンジニアとして非常に正しいステップです!

1. Instruments(インスツルメンツ)の起動方法

Xcodeのデバッグゲージよりも詳細、かつリアルタイムにFPSや負荷を計測できるツールです。

  1. Xcodeのメニューバー(画面最上部)から Product をクリックします。
  2. リストの中から Profile(ショートカット:Command + I)を選択します。
  3. ビルドが完了すると、別のアプリ(Instruments)が立ち上がります。
  4. テンプレート選択画面が出るので、Core Animation(または Graphics)を選択して Choose を押します。
  5. 左上の赤い (Record) ボタンを押すとアプリが実機で起動し、リアルタイムのFPSがグラフで表示されます。

+ Instrument > Core Animation FPSを選択

赤丸でアプリ開始され、ログが表示されます

FPS問題なく変更できていることを確認しました^^v

お気軽にコメントください!

スパム対応のためコメント認証に数日かかることがありますが、お気軽にコメントいただけると嬉しいです^^

コメント

タイトルとURLをコピーしました